怎么把动态生成的table表格中的所有td绑定上单击事件,当点击td的时候变成编辑状态。 15C

我也知道可以在td标签上绑定单击事件,然后在td中加入文本框,但是我死活就是绑定不上td,为什么?就包括我在网页上只写一个td,里面写一个按钮,我绑定这个按钮都绑定不上为什么?

11个回答

你的add是类名称,又不是id选择器,你用id选择器获取不到dom对象了

  $("#add").click(function () {
 ===>
 $(".add").click(function () {

http://download.csdn.net/download/w172087242/9604430
这个是我之前写的一个编辑的,希望能够帮到你...

如果有帮助,希望采纳,如果有问题,可以继续回馈

w172087242
little_how 回复qq979171616: 那个是测试的,非法行数会被过滤
接近 3 年之前 回复
qq979171616
C1garette var json = {edit : [-1,1, 4,3,9,3,4]};这行啥意思啊?
接近 3 年之前 回复
  1. <!doctype html> tr{height: 20px;width: 300px;} td{width: 200px;} .hid{display: none;}
    序号 姓名 年龄 性别 操作
    1 tom 18 添加 修改 删除
    2 jone 28 添加 修改 删除
    3 lily 21 添加 修改 删除
    添加 修改 删除

$("table td").click(function(){ 执行……});
你的绑定不上,需要你把你的写法贴出来才能知道原因

 <!doctype html>
<html>
<head>
    <title></title>
    <meta charset="utf-8">
    <style type="text/css">
    tr{height: 20px;width: 300px;}
    td{width: 200px;}
    .hid{display: none;}
    </style>
<script type="text/javascript" src="scripts/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
//点击添加
$("#add").click(function(){
    //01 克隆
    alert("1111111");
    var $tr = $(".hid").clone(true);
    //disply=block
    $tr.removeClass("hid");
    //把修改按钮的值为保存
    $tr.find("button:contains('修改')").html("保存");
    //02 after()
    $(this).closest("tr").after($tr);
    resetIndex();
});
//点击修改
$(".update").click(function(){
    //可操作的全部区域
    var $tds = $(this).parents("tr").children("td").not(":first,:last");
    //点击修改按钮的时候,先判定是修改还是保存
    var $content = $(this).html();
    if ($content=="修改") {
    //如果是修改,给每个操作的td添加一个input标签        
        $tds.each(function(){
            $(this).html("<input type='text' value='"+$(this).html()+"'>")
        });
        $(this).html("保存")
    }else{
    //如果是保存,将修改的内容保存下来
        $tds.each(function(){
            var contentIn= $(this).children("input").val()
            $(this).html(contentIn);
        });
        $(this).html("修改")
    }
});
//点击删除
$(".del").click(function(){
    $(this).parents("tr").remove();//将对应的一行删除
    resetIndex();
});
});
function resetIndex(){
    //计算序号
        $("tr>td:first-child").each(function(index,element){
            $(this).html(index+1)
        })
}
</script>
</head>
<body>
<table border="1px" cellspacing="0">
    <tr>
        <th>序号</th>
        <th>姓名</th>
        <th>年龄</th>
        <th>性别</th>
        <th>操作</th>
    </tr>
    <tr>
        <td>1</td>
        <td>tom</td>
        <td>18</td>
        <td>男</td>
        <td>
            <button class="add">添加</button>
            <button class="update">修改</button>
            <button class="del">删除</button>
        </td>
    </tr>
    <tr>
        <td>2</td>
        <td>jone</td>
        <td>28</td>
        <td>男</td>
        <td>
            <button class="add">添加</button>
            <button class="update">修改</button>
            <button class="del">删除</button>
        </td>
    </tr>
    <tr>
        <td>3</td>
        <td>lily</td>
        <td>21</td>
        <td>女</td>
        <td>
            <button class="add">添加</button>
            <button class="update">修改</button>
            <button class="del">删除</button>
        </td>
    </tr>
    <tr class="hid">
        <td></td>
        <td><input type="text"></td>
        <td><input type="text"></td>
        <td><input type="text"></td>
        <td>
            <button class="add">添加</button>
            <button class="update">修改</button>
            <button class="del">删除</button>
        </td>
    </tr>
</table>



</body>
</html>

这是我在百度找的,也不行啊。点按钮都没效果啊。

你这个#add 是根据id选择的啊 你没有id = add 的

qq979171616
C1garette 那是后来我改的,改错了,不改也点不了,点其他的也不行。
接近 3 年之前 回复

新创建的table表格,最外层假如有一个父级,通过父级来绑定。然后click的时候textarea执行focus();

$('#tableBox').on('click','td',function(){
this.find('textarea').focus();
})

在 html 里你定义 class='add' 但是在jquery里,你是选取ID = add (#add)

就用jquery选择器然后绑定事件,再做操作啊。另外你还是学会百度吧。想要啥都行。这么效率太低了

共11条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
javascript对table设置样式的问题..
下面是完整的代码: 我是想通过,鼠标移到tr上面,把背景样式改变,然后,鼠标单击的时候,也该表背景颜色, 现在这一步已经完成, 还有一个就是鼠标移到其他行,又需要恢复,onmouseover和 onmouseOut 的样式。 这个要怎么实现?请教一下... <html> <head> <script> //单击时,改变样式; function onClickChangeStyle(obj){ //获取表格对象; var tab = document.getElementById("tab"); //获取当前行选择下标; var currentRowIndex = obj.rowIndex; //获取表格所有行数; var tablRows = tab.rows.length; //获取表格第一行,第一列的值; //var firstCellValue = tab.rows[0].cells[0].innerHTML; //获取表格的第一行,第一列的第一个元素的值; //var firstChildValue = tab.rows[0].cells[0].firstChild.value; //循环表格的所有行;并且选择的当前行,改变背景颜色; for(var i = 0;i<tablRows;i=i+1){ if(currentRowIndex == i){ //为选中的当前,设置css样式; tab.rows[i].style.cssText="background-color:00FFFF"; }else{ //把没有选中的行的背景样式设置为白色; tab.rows[i].style.cssText="background-color:white"; tab.rows[i].onmouseover = function(){ this.className="displayStyle"; //tab.rows[i].className="displayStyle"; } //绑定鼠标移开事件,并且设置样式为白色; tab.rows[i].onmouseout = function() { this.cssText="background-color:white;"; //tab.rows[i].className="hideStyle"; } } } } </script> <style> .displayStyle{ background-color:blue; } .hideStyle{ background-color:white; } .onClickStyle{ background-color:red; } </style> </head> <body> <form name="myForm"> <table width="100%" id="tab" name="tab"> <tr id="tr1" onmouseOver=this.className="displayStyle" onmouseOut=this.className="hideStyle" onclick="onClickChangeStyle(this)"> <td><input type="checkbox" value="11"/></td> <td>100</td> <td>张三</td> <td>15</td> <td>湖南株洲</td> </tr> <tr id="tr2" onmouseOver=this.className="displayStyle" onmouseOut=this.className="hideStyle" onclick="onClickChangeStyle(this)"> <td><input type="checkbox" value="22"/></td> <td>100</td> <td>李四</td> <td>15</td> <td>湖南长沙</td> </tr> <tr id="tr3" onmouseOver=this.className="displayStyle" onmouseOut=this.className="hideStyle" onclick="onClickChangeStyle(this)"> <td><input type="checkbox" value="33"/></td> <td>100</td> <td>王五</td> <td>15</td> <td>湖南湘潭</td> </tr> </table> </form> </body> </html>
jquery做循环绑定(live方法)事件的问题
如题 现在我有4个按钮控件:id分别为'b1'、'b2'、'b3'、'b4' 有4个div id分别为'div1'、'div2'、'div3'、'div4' 我想要通过for循环和live()函数将每个按钮的click事件分别绑定相应的div的一个animate动作。比如按钮id为'b1',点击后'div1'会给出相应动作、按钮id为'b2',点击后'div2'会给出相应动作,以此类推。 但是现在实现不了。FF下不报错。ie下报jquery.js文件的一段说不支持apply方法。 请问是什么问题,该如何实现我想要的效果呢? :oops: 第一次发帖,如果问题太傻什么的请大家多多包涵。 代码如下: <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>try20</title> <script type="text/javascript" src="<%=path %>/js/jquery.js"></script> <script type="text/javascript"> $(document).ready(function(){ for(var i = 1;i<=4;i++ ) $("#b"+i).live('click',function(i){ $("#div"+i).slideToggle(); }); }); </script> <style> *{ mapping:0px; margin:0px; } DIV{ width:100px; height:100px; background-color:#CBCE97; display:none; } </style> </head> <body> <table> <tr> <td> <div id="div1"></div><input id="b1" type="button" value="1"></td><td> <div id="div2"></div><input id="b2" type="button" value="2"></td><td> <div id="div3"></div><input id="b3" type="button" value="3"></td><td> <div id="div4"></div><input id="b4" type="button" value="4"></td> </table> </body> </html>
求助!js中获取的数据如何进行操作
小弟使用Spring框架制作了个一个网站。可以查看数据库中的数据,在页面加载完毕后显示所有数据库指定表中的内容,源码如下: ``` $(function(){ $.post( base_path+"/record/find.do", {}, function(result){ if(result.success){ var list=result.data; $(list).each(function(){ //每次遍历会得到一个笔记本对象 var table='<tr><td>'+this.record_title+'</td><td>'+this.record_time+'</td><td>'+this.record_man+'</td><td>'+this.record_content+'</td><td>'+this.record_comment+'</td><td>&nbsp;'+'<input type="button" value="Change" id="Change" class="">&nbsp;'+'<input type="button" value="Delete" id="Delete" class=""></td></tr>'; $('#tbody').append(table); //将数据绑定上td上,为后续的修、删除功能做准备 $('#tbody tr td:last').data("data",this); }); }else{ alert(result.message) } } ); //进入添加新数据界面 $("#ADD").click(function(){ location.href="Add.html"; }); //删除当前数据 $("#Delete").click(function(){ alert('11'); location.href="Add.html"; }); //修改当前用户密码 $("#changePassword").click(function(){ alert('11'); location.href="Add.html"; }); //返回Record页面 $("#Back").click(function(){ location.href="Record.html"; }); //确认添加一条数据 $("#add").click(function(){ add(); }); }); ``` 现在的情况是,我想给Change和Delete按钮添加动作,但是添加之后点击没有反应。请问该怎么解决呢?
数据源没问题,但Repeater控件就是不能显示数据,求好人指点
1、我是想做这么一个效果,点击按钮,显示弹出框,选取里面的数据,然后在后台创建一个虚拟表格,把数据填入表格里,然后Repeater控件绑定表格数据。用Eval给Repeater传值。 2、如果去掉弹出框,Repeater是能完美的动态显示数据的,但有弹出框就没显示, 3、能够确定数据源没问题,数据能够取到, 我已经花费太多时间研究了,可能只是一句代码的问题,请哪位指点一下,在此先谢过了 ``` <asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional"> <ContentTemplate> <table cellpadding="0" cellspacing="0" width="100%" border="0" style="margin: 10px 0;"> <tr> <th> 姓名Name</th> <th>性别Gender</th> <th>年龄Age</th> <th>删除Delete</th> </tr> <asp:Repeater ID="RepeaterList" runat="server" OnItemCommand="RpProduct_ItemCommand"> <ItemTemplate> <tr> <td > <asp:TextBox ID="Name" runat="server" class="atext" Text='<%# Eval("Name")%>'></asp:TextBox> </td> <td> <asp:TextBox ID="Gender" runat="server" class="atext" Text='<%# Eval("Gender")%>'></asp:TextBox> </td> <td> <asp:TextBox ID="Age" runat="server" class="atext" Text='<%# Eval("Age")%>'></asp:TextBox> </td> <td> <span> asp:LinkButton ID="lbDel" CommandName="btndel" runat="server" OnClientClick="return confirm( '确定要删除吗(Are you sure delete it)? ');">Del</asp:LinkButton></span> </td> </tr> </ItemTemplate> </asp:Repeater> </table> </ContentTemplate> </asp:UpdatePanel> ```
Repeater控件不能显示数据,求好人指点
1、我是想做这么一个效果,点击按钮,显示弹出框,选取里面的数据,然后在后台创建一个虚拟表格,把数据填入表格里,然后Repeater控件绑定表格数据。用Eval给Repeater传值。 2、如果去掉弹出框,Repeater是能完美的动态显示数据的,但有弹出框就没显示, 3、能够确定数据源没问题,数据能够取到, 我已经花费太多时间研究了,可能只是一句代码的问题,请哪位指点一下,在此先谢过了 ``` <asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional"> <ContentTemplate> <table cellpadding="0" cellspacing="0" width="100%" border="0" style="margin: 10px 0;"> <tr> <th> 姓名Name</th> <th>性别Gender</th> <th>年龄Age</th> <th>删除Delete</th> </tr> <asp:Repeater ID="RepeaterList" runat="server" OnItemCommand="RpProduct_ItemCommand"> <ItemTemplate> <tr> <td > <asp:TextBox ID="Name" runat="server" class="atext" Text='<%# Eval("Name")%>'></asp:TextBox> </td> <td> <asp:TextBox ID="Gender" runat="server" class="atext" Text='<%# Eval("Gender")%>'></asp:TextBox> </td> <td> <asp:TextBox ID="Age" runat="server" class="atext" Text='<%# Eval("Age")%>'></asp:TextBox> </td> <td> <span> asp:LinkButton ID="lbDel" CommandName="btndel" runat="server" OnClientClick="return confirm( '确定要删除吗(Are you sure delete it)? ');">Del</asp:LinkButton></span> </td> </tr> </ItemTemplate> </asp:Repeater> </table> </ContentTemplate> </asp:UpdatePanel> ```
java的ssm框架用Integer数组接收数据问题。
我用Integer[]接收后台传过来的数据,只能接收一个,接收多个报400错误,这是怎么回事? ``` $(function(){ /** 获取上一次选中的部门数据 */ var boxs = $("input[type='checkbox'][id^='box_']"); /** 给全选按钮绑定点击事件 */ $("#checkAll").click(function(){ // this是checkAll this.checked是true // 所有数据行的选中状态与全选的状态一致 boxs.attr("checked",this.checked); }) /** 给数据行绑定鼠标覆盖以及鼠标移开事件 */ $("tr[id^='data_']").hover(function(){ $(this).css("backgroundColor","#eeccff"); },function(){ $(this).css("backgroundColor","#ffffff"); }) /** 删除员工绑定点击事件 */ $("#delete").click(function(){ /** 获取到用户选中的复选框 */ var checkedBoxs = boxs.filter(":checked"); if(checkedBoxs.length < 1){ $.ligerDialog.error("请选择一个需要删除的用户!"); }else{ /** 得到用户选中的所有的需要删除的ids */ var ids = checkedBoxs.map(function(){ return this.value; }) $.ligerDialog.confirm("确认要删除吗?","删除用户",function(r){ if(r){ alert("删除:"+ids.get()); // 发送请求 window.location.href = "${pageContext.request.contextPath}/user/removeUser.do?ids="+ids.get(); } }); } }) }) ``` ``` <!-- 数据展示区 --> <tr valign="top"> <td height="20"> <table width="100%" border="1" cellpadding="5" cellspacing="0" style="border:#c2c6cc 1px solid; border-collapse:collapse;"> <tr class="main_trbg_tit" align="center"> <td><input type="checkbox" name="checkAll" id="checkAll"></td> <td>登录名</td> <td>密码</td> <td>用户名</td> <td>状态</td> <td>创建时间</td> <td align="center">操作</td> </tr> <c:forEach items="${users }" var="user"> <tr id="data_${stat.index}" align="center" class="main_trbg" onMouseOver="move(this);" onMouseOut="out(this);"> <td><input type="checkbox" id="box_${stat.index}" value="${user.id}"></td> <td>${user.loginname}</td> <td>${user.password}</td> <td>${user.username}</td> <td>${user.status}</td> <td><f:formatDate value="${user.createdate}" type="date" dateStyle="long"/></td> <td align="center" width="40px;"><a href="${pageContext.request.contextPath}/user/modifyUser.do?id=${user.id}"> <img title="修改" src="${pageContext.request.contextPath}/images/update.gif"/></a> </td> </tr> </c:forEach> </table> </td> </tr> ``` ``` /*删除*/ @RequestMapping("/removeUser.do") @ResponseBody public String removeUser(Integer[] ids,Model model) { /* int rows=userService.removeUserById(ids);*/ for(Integer id:ids){ System.out.println(id); } System.out.println("222"); /* System.out.println(ids);*/ /* if(rows==ids.length){ return "redirect:/user/findUser.do"; }else{ model.addAttribute("fail","用户发布了相关文件或公告,请处理后再删除!"); return "/jsp/fail.jsp"; }*/ return null; } ```
Repeater控件不能显示数据,求大神指点
我是想做这么一个效果,点击按钮,显示弹出框,选取里面的数据,然后在后台创建一个虚拟表格,把数据填入表格里,然后Repeater控件绑定表格数据。用Eval给Repeater传值。 如果去掉弹出框,Repeater是能完美的动态显示数据的,但有弹出框就没显示, 能够确定数据源没问题,数据能够取到, 我已经花费太多时间研究了,可能只是一句代码的问题,请哪位指点一下,在此先谢过了 ``` <asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional"> <ContentTemplate> <table cellpadding="0" cellspacing="0" width="100%" border="0" style="margin: 10px 0;"> <tr> <th> 姓名Name</th> <th>性别Gender</th> <th>年龄Age</th> <th>删除Delete</th> </tr> <asp:Repeater ID="RepeaterList" runat="server" OnItemCommand="RpProduct_ItemCommand"> <ItemTemplate> <tr> <td > <asp:TextBox ID="Name" runat="server" class="atext" Text='<%# Eval("Name")%>'></asp:TextBox> </td> <td> <asp:TextBox ID="Gender" runat="server" class="atext" Text='<%# Eval("Gender")%>'></asp:TextBox> </td> <td> <asp:TextBox ID="Age" runat="server" class="atext" Text='<%# Eval("Age")%>'></asp:TextBox> </td> <td> <span> asp:LinkButton ID="lbDel" CommandName="btndel" runat="server" OnClientClick="return confirm( '确定要删除吗(Are you sure delete it)? ');">Del</asp:LinkButton></span> </td> </tr> </ItemTemplate> </asp:Repeater> </table> </ContentTemplate> </asp:UpdatePanel> ```
看题 js问题
<body> <center> <br><br> 添加用户:<br><br> 姓名: <input type="text" name="name" id="name" />&nbsp;&nbsp; email: <input type="text" name="email" id="email" />&nbsp;&nbsp; 爱好: <input type="text" name="love" id="love" />   电话: <input type="text" name="tel" id="tel" /><br><br> <button id="addUser">提交</button> <br><br> <hr> <br><br> <table id="usertable" border="1" cellpadding="5" cellspacing=0> <tbody> <tr> <th>姓名</th> <th>email</th> <th>爱好</th> <th>电话</th> <th>操作</th> </tr> <tr> <td>凤姐</td> <td>fengjie@qq.com</td> <td>吃饭</td> <td>5000</td> <td><a href="deleteEmp?id=Tom" >Delete</a></td> </tr> <tr> <td>刘林</td> <td>liulin@sohu.com</td> <td>吃饭</td> <td>8000</td> <td><a href="deleteEmp?id=Jerry" >Delete</a></td> </tr> </tbody> </table> </center> </body> <script > window.onload = function(){ document.getElementById("addUser").onclick = function(){ //获取姓名、email、电话的值 绑定标签(根据id) var name = document.getElementById("name").value; var email = document.getElementById("email").value; var love=document.getElementById("love").value; var tel = document.getElementById("tel").value; //动态生成td 名字 var tdName = document.createElement("td"); var tdNameText = document.createTextNode(name); tdName.appendChild(tdNameText); //动态生成td 游戏 var tdEmail = document.createElement("td"); var tdEmailText = document.createTextNode(email); tdEmail.appendChild(tdEmailText); //动态生成td 爱好 var tdLove = document.createElement("td"); var tdLoveText = document.createTextNode(love); tdLove.appendChild(tdLoveText); //动态生成td 电话 var tdTel = document.createElement("td"); var tdTelText = document.createTextNode(tel); tdTel.appendChild(tdTelText); //-------------------------------------------------- var tdDelete = document.createElement("td"); var aE = document.createElement("a"); aE.setAttribute("href","deleteEmp?id="+name); var aEText = document.createTextNode("Delete"); aE.appendChild(aEText); tdDelete.appendChild(aE); //--------------------------------------------------- //创建tr,将4个创建完成的td对象放置到tr中 //生成动态的tr var tr = document.createElement("tr"); tr.appendChild(tdName); tr.appendChild(tdEmail); tr.appendChild(tdLove); tr.appendChild(tdTel); tr.appendChild(tdDelete); //-------------------------------------------------------------- var tbody = document.getElementsByTagName("tbody"); tbody[0].appendChild(tr); //当点击Delete,执行删除对应的行 aE.onclick = function(){ return deleteTr(this); } } //删除对应行的方法 function deleteTr(aE){ var name = aE.parentNode.parentNode.firstChild.firstChild.nodeValue; var flag = window.confirm("您确定要删除【"+name+"】吗?"); if(flag){ //查找父节点(tbody) var tbody = aE.parentNode.parentNode.parentNode;//这个是3 //查找子节点(tr) var tr = aE.parentNode.parentNode;//这个是2 //删除tr tbody.removeChild(tr);//删除孩子节点 } return false; } } </script>
求大神救命,检查了半天,38行一直报错,头都大了,我感觉逻辑都是对的
``` <!DOCTYPE html> <html> <head> <title> new document </title> <meta http-equiv="Content-Type" content="text/html; charset=gbk"/> </head> <body> <table border="1" width="50%" id="table"> <tr> <th>学号</th> <th>姓名</th> </tr> </table> <input type="button" value="添加一行" onclick="addRow()"/> <script type="text/javascript"> var table = document.getElementById("table"); function addRow() { var row = document.createElement("tr"); table.appendChild(row); for (var i = 0; i < 2; i++) { var td = document.createElement("td"); row.appendChild(td); var txt = document.createTextNode("点击输入"); td.appendChild(txt); td.setAttribute("class","write"); } //加一行绑定一行onlick事件 click_writeIn(); } function click_writeIn() { var dt_write = document.getElementsByClassName("write"); alert(dt_write.length); for(var i=0;i<dt_write.length;i++){ dt_write[i].onclick=function () { var newNode = document.createElement("input"); newNode.setAttribute("type","txt"); dt_write[i].parentNode.replaceChild(newNode,dt_write[i]); } } } </script> </body> </html> ``` ![图片说明](https://img-ask.csdn.net/upload/201703/09/1488990041_770677.png)
我最近写了个留言表 但是出现了找不到memberAction ?
1,这个是struts 配置 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <constant name="struts.objectFactory" value="spring" /> <constant name="struts.devMode" value="false"></constant> <package name="member" extends="struts-default" namespace="/member"> <action name="register" class="memberAction" method="registe"> <result name="success">/login.jsp</result> <result name="fail">/register.jsp</result> <result name="input">/register.jsp</result> </action> <action name="login" class="memberAction" method="login"> <result name="success" type="redirectAction"> <param name="namespace">/message</param> <param name="actionName">liuYanList</param> </result> <result name="fail">/login.jsp</result> </action> </package> <package name="message" extends="json-default" namespace="/message"> <action name="publish" class="messageAction" method="publish"> <!-- 这个action 成功后 是把数据库里面的留言抓去 放到这个成功页面 --> <result name="success" type="redirectAction"> <param name="actionName">liuYanList</param> </result> <!-- 失败还是返回这个页面 用异步提示 发送失败 所以选用json 所以这个包应该继承的是json-default --> <result name="fail" type="json"> <!-- 指定json字符串 根对象是谁 这个需要根据自己写的类来设计 --> <param name="root">errorMap</param> </result> </action> <action name="liuYanList" class="messageAction" method="liuYanList"> <result name="success">/WEB-INF/pages/message.jsp</result> </action> </package> <package name="verify" extends="json-default" namespace="/verify"> <!-- 因为我们只是生成一个校验码 所以 不用写方法 只需要excute就可以 --> <action name="code" class="verifyCodeAction"> <!-- 因为我们用的是流传输 验证码 所以 result 的类型应该是stream --> <result name="success" type="stream"> <param name="inputName">inputStream</param> </result> </action> <action name="check" class="verifyCodeAction" method="check"> <result name="success" type="json"> <param name="root">checkResult</param> </result> </action> </package> 2, 这个是登录 private static final long serialVersionUID = 7270980727777540053L; private Member member; private String rePassword; private String verifyCode;//通过属性驱动来收集页面的验证码 //保存收集到页面的数据 通过service来保存 所以就要注入一个service private MemberService memberService; public String login() { //根据一个指定的username 从数据库中 获取一个Member 对象 Member m = memberService.getMember(member.getUsername()); if (m != null) { //因为数据库里面保存的是我们加过密之后的密码 所以我们要对用户登录时输入的密码也进行加密 //这样才能比较 两个密码 String inputPassword = StringUtil.md532(member.getPassword()); if (m.getPassword().equals(inputPassword) ){ //信息完全正确 就需要把用户的信息存入session中 这样就不需要重复登录 //通过 Struts2 来访问 HttpSession 把member 的信息存放到session中 //m 是来自数据库的 有主键 id ActionContext.getContext().getSession().put("member", m); return "success"; }else { //密码错误 } }else { //输入的用户名不存在 } return "fail"; } 这个是登录页面 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="/struts-tags" prefix="s" %> <html> <head> <title>用户登录页面</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <!-- 引入 CSS 文件--> <link href="${pageContext.request.contextPath }/css/style.css" type="text/css" rel="stylesheet" /> <!-- 引入JavaScript 库 --> <script src="${pageContext.request.contextPath}/jslibs/jquery-1.11.3.min.js" type="text/javascript"></script> <script type="text/javascript"> jQuery(function () { jQuery("#refresh").click(function(){ jQuery("#verify_code").attr("src","${pageContext.request.contextPath }/verify/code?suibian" + new Date()) }); jQuery("#verify_code_input").blur(function(){ //获得输入框的值 和 服务器里面的验证码进行对比 var input = jQuery("#verify_code_input").val(); //发送到服务器端 和 服务器里面的验证码进行对比 var url = "${pageContext.request.contextPath }/verify/check"; var settings={ "url":url, "type":"POST", "data":{"inputCode" : input}, "dataType":"json", "success":function( responseData ){ jQuery("#verify_code_error").html( responseData ); } }; jQuery.ajax(settings); }); }); </script> </head> <body topMargin="10"> <center> <div id="append_parent"></div> <table cellSpacing="6" cellPadding="2" width="100%" border="0"> <tbody> <tr> <td> <table class="guide" cellSpacing="0" cellPadding="0" width="100%" border="0"> <tbody> <tr> <td> <a href='index.jsp'>主页</a>&nbsp;/&nbsp; <a href='#'>留言板(malastruts)</a>&nbsp;/&nbsp;用户登录 </td> </tr> </tbody> </table> <h4 align="center">${ msg }</h4> <!--<form id="settings" action="register_action.jsp" method="post"> --> <form id="settings" action="${pageContext.request.contextPath}/member/login" method="post"> <table class="tableborder" cellSpacing="0" cellPadding="0" width="100%" border="0"> <tbody> <tr class="header"> <td colSpan="3"> 登录系统 </td> </tr> </tbody> <tbody> <tr> <td class="altbg1" width="20%"> <b>用户名称 </b> </td> <td class="altbg2" valign="middle" width="20%"> <input type="text" name="username" value="${member.username}" /> </td> <td> <span style="color: red"> <s:fielderror fieldName="username"></s:fielderror> </span> </td> </tr> <tr> <td class="altbg1" width="20%"> <b>用户密码 </b> </td> <td class="altbg2"> <input type="password" name="password"/> </td> <td> <span style="color: red"> <s:fielderror fieldName="password"></s:fielderror> </span> </td> </tr> <tr> <td class="altbg1" width="20%"> <b>验证码 </b> </td> <td class="altbg2"> <input type="text" name="verifyCode" id="verify_code_input" /> </td> <td> <!-- 我们用jquery 给这个验证码绑定一个点击事件 实现异步的验证码刷新 --> <img src="${pageContext.request.contextPath}/verify/code" id="verify_code"> <a href="javascript: " id="refresh">输入正确</a> <span style="color: red" id="verify_code_error"> <s:fielderror fieldName="verifyCode"></s:fielderror> </span> </td> </tr> </tbody> </table> <br /> <center> <input class="button" type="reset" value="重置" name="settingsubmit" /> <input class="button" type="submit" value="提交" name="settingsubmit" /> </center> </form> </td> </tr> </tbody> </table> <hr> </center> </body> </html> 3,Spring 配置 <bean id="memberAction" class="message.action.MemberAction" p:memberService-ref="memberService" scope="singleton"/> <bean id="messageAction" class="message.action.MessageAction" p:messageService-ref="messageService" scope="singleton"/> <bean id="verifyCodeAction" class="message.action.VerifyCodeAction" scope="singleton"/> 4,这个是Member 类 public class Member implements Serializable { private static final long serialVersionUID = 1L; private String username; private String password; private Integer id; //维护 Member 到 Message 一对多的关系 private Set<Message> messages;//当前会员留言 private Set<Reply> replies;//当前会员回复 public Set<Reply> getReplies() { return replies; } public void setReplies(Set<Reply> replies) { this.replies = replies; } public Set<Message> getMessages() { return messages; } public void setMessages(Set<Message> messages) { this.messages = messages; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } } 启动时没有出现任何异常 就是登录的时候 会出现这个异常 type Exception report message Invalid action class configuration that references an unknown class named [memberAction] description The server encountered an internal error that prevented it from fulfilling this request. exception java.lang.RuntimeException: Invalid action class configuration that references an unknown class named [memberAction] root cause java.lang.ClassNotFoundException: memberAction
Repeater控件数据的显示被弹出框影响了是怎么回事?
* 点击按钮,弹出弹出框,选中里面的数据,然后后台取数据,给Repeater绑定数据源,用Eval给Repeater每个字段传值。 * 如果去掉弹出框,Repeater是能完美的动态显示数据的,但有弹出框就没显示, * 能够确定数据源没问题,数据能够取到, 我已经花费太多时间研究了,可能只是一句代码的问题,请哪位指点一下,在此先谢过了 ``` <asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional"> <ContentTemplate> <table cellpadding="0" cellspacing="0" width="100%" border="0" style="margin: 10px 0;"> <tr> <th> 姓名Name</th> <th>性别Gender</th> <th>年龄Age</th> <th>删除Delete</th> </tr> <asp:Repeater ID="RepeaterList" runat="server" OnItemCommand="RpProduct_ItemCommand"> <ItemTemplate> <tr> <td > <asp:TextBox ID="Name" runat="server" class="atext" Text='<%# Eval("Name")%>'></asp:TextBox> </td> <td> <asp:TextBox ID="Gender" runat="server" class="atext" Text='<%# Eval("Gender")%>'></asp:TextBox> </td> <td> <asp:TextBox ID="Age" runat="server" class="atext" Text='<%# Eval("Age")%>'></asp:TextBox> </td> <td> <span> asp:LinkButton ID="lbDel" CommandName="btndel" runat="server" OnClientClick="return confirm( '确定要删除吗(Are you sure delete it)? ');">Del</asp:LinkButton></span> </td> </tr> </ItemTemplate> </asp:Repeater> </table> </ContentTemplate> </asp:UpdatePanel> ```
【求助】angular typescript中component与html之间的数据传递
要做一个输入用户id和密码的登录页面,点击登录按钮,进入菜单页面。 从来没用过Angular,从网上一点点找类似的代码,大致拼出下面的内容: <app.module.ts> ``` import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; import { FormsModule } from '@angular/forms'; import { HttpClientModule } from '@angular/common/http'; import { AppRoutingModule } from './app-routing.module'; import { AppComponent } from './app.component'; import { NavMenuComponent } from './nav-menu/nav-menu.component'; // 登录画面 import { LoginComponent } from './login/login.component'; // 菜单画面 import { MenuComponent } from './menu/menu.component'; @NgModule({ declarations: [ AppComponent, NavMenuComponent, LoginComponent, MenuComponent ], imports: [ BrowserModule.withServerTransition({ appId: 'ng-cli-universal' }), HttpClientModule, FormsModule, AppRoutingModule ], providers: [], bootstrap: [AppComponent] }) export class AppModule { } // 这里定义一个登录用的类 export class LoginModel { constructor( public companyCd: string, public companyPw: string, public message?: string) { } } ``` ``` <login.component.html> <div> <div align="center"> <p>请输入企业ID和密码:</p> </div> <div align="center"> <form #f="ngForm" (ngSubmit)="onSubmit()"> <table> <tr> <td><label for="companyCd">企业ID:</label></td> <td> <input id="companyCd" name="companyCd" type="text" [(ngModel)]="company.companyCd" #companyCd="ngModel"> </td> </tr> <tr> <td><label for="companyPw">密码:</label></td> <td> <input id="companyPw" name="companyPw" type="text" [(ngModel)]="company.companyPw" #companyPw="ngModel"> </td> </tr> </table> <button type="submit" class="btn btn-primary" routerLink="/menu">登录</button> <br /> <span style="color:red;font-weight:bold"> {{model.message}} </span> </form> {{ f.value | json }} </div> </div> <router-outlet></router-outlet> ``` ``` <login.component.ts> import { Component, OnInit } from '@angular/core'; import { Router } from '@angular/router'; import { LoginModel } from '../app.module'; @Component({ selector: 'app-login', templateUrl: './login.component.html', }) export class LoginComponent { model = new LoginModel('', '', ''); constructor(private router: Router) { } onSubmit() { var companyCd = (document.getElementsByName('companyCd')[0] as HTMLInputElement).value var companyPw = (document.getElementsByName('companyPw')[0] as HTMLInputElement).value if (companyCd == '' || companyPw == '') { this.model.message = '企业ID或密码不能为空'; } else if (!(companyCd == 'aaaa' && companyPw == 'bbbb')) { // 应该是连接数据库进行判定的,目前还没进展到那一步 company.message = '企业ID或密码输入有误'; } else { this.router.navigate(['menu']); } } } ``` 问题一: 不是很理解ngModel的双向绑定,在上面代码的前提下运行,F12显示TypeError: Unable to get property 'companyCd' of undefined or null reference。 问题二:关于html中输入的企业ID和密码,现在只能用getElementsByName来获取,但感觉应该还有利用ngModel的方法。 问题三:上面代码的前提下运行,不输入企业ID和密码,点击登录按钮,不显示错误信息{{model.message}}。如果把 [(ngModel)]="company.companyCd"里的company换成model, [(ngModel)]="model.companyCd",在登录按钮下面就会一直显示{companyCd:"", companyPw:""}。怎么才能让Message只在输入错误的情况下显示?
jQuery上传插件Uploadify 3.2在.NET下的详细例子
项目中要使用Uploadify 3.2来实现图片上传并生成缩略通的功能,特此记下来,以供各位参考! Uploadify下载地址:http://www.uploadify.com/download/ 下载下来解压后估计里面很多文件,其实有用的也就jquery.uploadify.min.js、uploadify.css、uploadify.swf和uploadify-cancel.png这四个文件。你还得下载jQuery库,我这里用的是jquery-1.7.2.min.js,另外和大多数JQ插件一样,同时也需要swfobject.js这个插件,我的是2.2的版本,东西都准备好了,那下面就开始。 前端界面: [html] view plain copy <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="jqUploadify._Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>无标题页</title> <link href="scripts/uploadify.css" rel="stylesheet" type="text/css" /> <link href="scripts/default.css" rel="stylesheet" type="text/css" /> <script src="scripts/jquery-1.7.2.min.js" type="text/javascript"></script> <script src="scripts/swfobject.js" type="text/javascript"></script> <script src="scripts/jquery.uploadify.min.js" type="text/javascript"></script> <script type="text/javascript"> $(function(){ $("#file_upload").uploadify({ //开启调试 'debug' : false, //是否自动上传 'auto':false, 'buttonText':'选择照片', //flash 'swf': "scripts/uploadify.swf", //文件选择后的容器ID 'queueID':'uploadfileQueue', 'uploader':'scripts/upload.ashx', 'width':'75', 'height':'24', 'multi':false, 'fileTypeDesc':'支持的格式:', 'fileTypeExts':'*.jpg;*.jpge;*.gif;*.png', 'fileSizeLimit':'1MB', 'removeTimeout':1, //返回一个错误,选择文件的时候触发 'onSelectError':function(file, errorCode, errorMsg){ switch(errorCode) { case -100: alert("上传的文件数量已经超出系统限制的"+$('#file_upload').uploadify('settings','queueSizeLimit')+"个文件!"); break; case -110: alert("文件 ["+file.name+"] 大小超出系统限制的"+$('#file_upload').uploadify('settings','fileSizeLimit')+"大小!"); break; case -120: alert("文件 ["+file.name+"] 大小异常!"); break; case -130: alert("文件 ["+file.name+"] 类型不正确!"); break; } }, //检测FLASH失败调用 'onFallback':function(){ alert("您未安装FLASH控件,无法上传图片!请安装FLASH控件后再试。"); }, //上传到服务器,服务器返回相应信息到data里 'onUploadSuccess':function(file, data, response){ //alert(data); } }); }); function doUplaod(){ $('#file_upload').uploadify('upload','*'); } function closeLoad(){ $('#file_upload').uploadify('cancel','*'); } </script> </head> <body> <table width="704" border="0" align="center" cellpadding="0" cellspacing="0" id="__01"> <tr> <td align="center" valign="middle"> <div id="uploadfileQueue" style="padding: 3px;"> </div> <div id="file_upload"> </div> </td> </tr> <tr> <td height="50" align="center" valign="middle"> <img alt="" src="images/BeginUpload.gif" width="77" height="23" onclick="doUplaod()" style="cursor: hand" /> <img alt="" src="images/CancelUpload.gif" width="77" height="23" onclick="closeLoad()" style="cursor: hand" /> </td> </tr> </table> </body> </html> 后端的Handler: [csharp] view plain copy using System; using System.Collections; using System.Data; using System.Linq; using System.Web; using System.Web.Services; using System.Web.Services.Protocols; using System.Xml.Linq; using System.Web.SessionState; using System.IO; namespace jqUploadify.scripts { /// <summary> /// $codebehindclassname$ 的摘要说明 /// </summary> [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] public class upload : IHttpHandler, IRequiresSessionState { public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; context.Response.Charset = "utf-8"; HttpPostedFile file = context.Request.Files["Filedata"]; string uploadPath = context.Server.MapPath("..\\uploads\\"); if (file != null) { if (!Directory.Exists(uploadPath)) { Directory.CreateDirectory(uploadPath); } file.SaveAs(uploadPath + file.FileName); //生成缩略图 MakeThumbnail(uploadPath + file.FileName, uploadPath + "\\s\\" + file.FileName, 80, 80); } } private void MakeThumbnail(string sourcePath, string newPath, int width, int height) { System.Drawing.Image ig = System.Drawing.Image.FromFile(sourcePath); int towidth = width; int toheight = height; int x = 0; int y = 0; int ow = ig.Width; int oh = ig.Height; if ((double)ig.Width / (double)ig.Height > (double)towidth / (double)toheight) { oh = ig.Height; ow = ig.Height * towidth / toheight; y = 0; x = (ig.Width - ow) / 2; } else { ow = ig.Width; oh = ig.Width * height / towidth; x = 0; y = (ig.Height - oh) / 2; } System.Drawing.Image bitmap = new System.Drawing.Bitmap(towidth, toheight); System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap); g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High; g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; g.Clear(System.Drawing.Color.Transparent); g.DrawImage(ig, new System.Drawing.Rectangle(0, 0, towidth, toheight), new System.Drawing.Rectangle(x, y, ow, oh), System.Drawing.GraphicsUnit.Pixel); try { bitmap.Save(newPath, System.Drawing.Imaging.ImageFormat.Jpeg); } catch (Exception ex) { throw ex; } finally { ig.Dispose(); bitmap.Dispose(); g.Dispose(); } } public bool IsReusable { get { return false; } } } } 这样我们就是实现图片上传至uploads,生成的缩略图(这里设为80*80)存放在uploads下面的s文件夹中,是不是很简单呢!当然实际使用过程你还可能碰到一下的问题: 1、在火狐下session出现丢失的情况,可以参考这里:http://www.cnblogs.com/akingyao/archive/2012/09/04/2670794.html 2、IE9出现了按钮不能点击的问题,可以参考这里:http://www.uploadify.com/forum/#/discussion/9155/uploadify-version-3-2-does-not-work-in-ie9/p1 最后贴一个Uploadify参数说明: Uploadify Version 3.2 Options选项设置 auto 选择文件后自动上传 buttonClass 给“浏览按钮”加css的class样式 buttonCursor 鼠标移上去形状:arrow箭头、hand手型(默认) buttonImage 鼠标移上去变换图片 buttonText 按钮文字 checkExisting 在目录中检查文件是否已上传成功(1 ture,0 false) debug 是否显示调试框(默认不显示false) fileObjName 设置一个名字,在服务器处理程序中根据该名字来取上传文件的数据。默认为Filedata,$tempFile = $_FILES['Filedata']['tmp_name'] fileSizeLimit 设置允许上传文件最大值B, KB, MB, GB 比如:'fileSizeLimit' : '20MB' fileTypeDesc 选择的文件的描述。这个字符串出现在浏览文件对话框中文件类型下拉框处。默认:All Files fileTypeExts 允许上传的文件类型。格式:'fileTypeExts' : '*.gif; *.jpg; *.png' formData 附带值,需要通过get or post传递的额外数据,需要结合onUploadStart事件一起使用 height “浏览按钮”高度px itemTemplate <itemTemplate>节点表示显示的内容。这些内容中也可以包含绑定到控件DataSource属性中元素集合的数据。 method 上传方式。默认:post multi 选择文件时是否可以【选择多个】。默认:可以true overrideEvents 不执行默认的onSelect事件 preventCaching 随机缓存值 默认true ,可选true和false.如果选true,那么在上传时会加入一个随机数来使每次的URL都不同,以防止缓存.但是可能与正常URL产生冲突 progressData 进度条上显示的进度:有百分比percentage和速度speed。默认百分比 queueID 给“进度条”加背景css的ID样式。文件选择后的容器ID queueSizeLimit 允许多文件上传的数量。默认:999 removeCompleted 上传完成后队列是否自动消失。默认:true removeTimeout 上传完成后队列多长时间后消失。默认 3秒 需要:'removeCompleted' : true,时使用 requeueErrors 队列上传出错,是否继续回滚队列,即反复尝试上传。默认:false successTimeout 上传超时时间。文件上传完成后,等待服务器返回信息的时间(秒).超过时间没有返回的话,插件认为返回了成功。 默认:30秒 swf swf文件的路径,本文件是插件自带的,不可用其它的代替.本参数不可省略 uploader 上传处理程序URL,本参数不可省略 uploadLimit 限制总上传文件数,默认是999。指同一时间,如果关闭浏览器后重新打开又可上传。 width “浏览按钮”宽度px Events 事件 onCancel 当取消一个上传队列中的文件时触发,删除时触发 onClearQueue 清除队列。当'cancel'方法带着*参数时,也就是说一次全部取消的时候触发.queueItemCount是被取消的文件个数(另外的按钮) onDestroy 取消所有的上传队列(另外的按钮) onDialogClose 当选择文件对话框关闭时触发,不论是点的'确定'还是'取消'都会触发.如果本事件被添加进了'overrideEvents'参数中,那么如果在选择文件时产生了错误,不会有错误提示框弹出 onDialogOpen 当选择文件框被打开时触发,没有传过来的参数 onDisable 关闭上传 onEnable 开启上传 onFallback 检测FLASH失败调用 onInit 每次初始化一个队列时触发 onQueueComplete 当队列中的所有文件上传完成时触发 onSelect 当文件从浏览框被添加到队列中时触发 onSelectError 选择文件出错时触发 onSWFReady flash准备好时触发 onUploadComplete当一个文件上传完成时触发 onUploadError 当文件上传完成但是返回错误时触发 onUploadProgress上传汇总 onUploadStart 一个文件上传之间触发 onUploadSuccess 每个上传完成并成功的文件都会触发本事件 Methods 方法 cancel 取消一个上传队列 destroy 取消所有上传队列 disable 禁止点击“浏览按钮” settings 返回或修改一个 uploadify实例的settings值 stop 停止当前的上传并重新添加到队列中去 upload 上传指定的文件或者所有队列中的文件 最后是DEMO的下载地址:http://download.csdn.net/detail/wangqiuyun/566551
分页后GrideView新增一行空白行
项目中有个需求,需要对已经绑定数据并分页的GrideView进行新增一行空白行。用户在点击“新增行”后,在界GrideView界面的最下面增加一行空白行。 要求:1、用户在第几页点击新增行就在当前页面显示新增行; 2、新增行按钮在GrideView外面; 具体代码如下: ``` 前台页面代码: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="YPCGJCB.aspx.cs" Inherits="CenterBase.供应链管理.YPCGJCB" %> <%@ Register Assembly="UserControls" Namespace="UserControls" TagPrefix="cc2" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head id="Head1" runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>药品折扣基础表</title> <link rel="stylesheet" href="../js/Grid/css/demo_page.css" /> <link rel="stylesheet" href="../js/DatePicker/base/jquery-ui.css" /> <script src="../js/jquery-1.7.2.min.js" type="text/javascript"></script> <script src="../js/JScript.js" type="text/javascript"></script> <script src="../js/DatePicker/jquery.ui.core.js" type="text/javascript"></script> <script src="../js/DatePicker/jquery.ui.datepicker.js" type="text/javascript"></script> <script src="../js/Ajax.js"></script> <script src="../js/jquery-1.4.1.js"></script> <style type="text/css"> .auto-style2 { height: 25px; } .auto-style3 { width: 156px; height: 25px; } .auto-style4 { margin-top: 5px; } .auto-style5 { text-align: right; } </style> <script language="javascript" type="text/javascript"> var dgPersonsID = "<%= YPZKXX.ClientID %>"; $(document).ready(function () { $("#dgPersons tr").eq(1).hide(); }); function AddNewRow() { var tr = $("#dgPersons tr").eq(1).clone(); tr.show(); tr.appendTo("#dgPersons"); refreshNo(); return false; } function refreshNo() { var dgg = document.getElementById(dgPersonsID); var index = 1; for (var i = 2; i < dgg.rows.length; ++i) { var cells = dgg.rows[i].cells; var row = dgg.rows[i]; if (row.style.display != "none") { cells[0].firstChild.nodeValue = index++; } } return false; } </script> </head> <body id="dt_example" class="ex_highlight_row"> <form id="form1" runat="server"> <div id="container"> <table width="100%" border="0" cellspacing="0" cellpadding="0" style="background-image: url(../images/Pop_page_back.gif)" align="center"> <tr> <td valign="center" style="height: 27px">&nbsp;<strong>药品折扣基础表</strong></td> </tr> </table> <div id="search"> <table class="t2" style="width:100%"> <tr> <td class="auto-style2">医院名称:</td> <td class="auto-style3"> <input type="text" id="txtyymc" runat="server" class="inputbox" readonly="true"/> </td> <td class="auto-style2">开始时间:</td> <td class="auto-style2"> <input type="text" id="txtkssj" runat="server" class="inputbox" readonly="true" /> </td> <td class="auto-style2">结束时间:</td> <td class="auto-style2"> <input type="text" id="txtjssj" runat="server" class="inputbox" readonly="true"/> </td> <td class="auto-style2">供应商名称:</td> <td class="auto-style2"> <input type="text" id="txtgys" runat="server" class="inputbox" readonly="true"/> </td> </tr> </table> </div> <div id="menu" class="auto-style5"> &nbsp;<asp:Button ID="Btn_Download" runat="server" Text="查 询" CssClass="buttoncss" OnClick="Btn_Download_Click"/> &nbsp; &nbsp;<asp:Button ID="btn_AddLine" runat="server" Text="新增行" CssClass="buttoncss" OnClientClick="return AddNewRow();return false;" /> &nbsp; &nbsp;<asp:Button ID="btn_xz" runat="server" Text="下 载" CssClass="buttoncss"/> &nbsp; &nbsp<asp:Button ID="btn_dr" runat="server" Text="导 入" CssClass="buttoncss" OnClick="btn_dr_Click" /> &nbsp; &nbsp;<asp:CheckBox runat="server" Text="显示历史数据" ID="cbo_xs" Checked="false" /> </div> <div> <asp:GridView ID="YPZKXX" runat="server" AutoGenerateColumns="False" Width="100%" HorizontalAlign="Center" style="text-align: center" NoNewline="word-break: keep-all;" CssClass="auto-style4" OnRowCancelingEdit="YPCGJCXX_RowCancelingEdit" OnRowEditing="YPCGJCXX_RowEditing" OnRowUpdating="YPCGJCXX_RowUpdating"> <EmptyDataTemplate> 没有数据 </EmptyDataTemplate> <FooterStyle ForeColor="White" BackColor="#3B6BD1" Font-Bold="True"></FooterStyle> <SelectedRowStyle Font-Bold="True" ForeColor="Navy" BackColor="#FFCC66" BorderColor="CornflowerBlue" /> <RowStyle ForeColor="#333333" BackColor="#FFFBD6" BorderColor="CornflowerBlue" BorderStyle="Solid" BorderWidth="1px" HorizontalAlign="Center" VerticalAlign="Bottom" Wrap="False" /> <HeaderStyle Font-Bold="True" ForeColor="#FFFFCC" BackColor="#3B6BD1" Wrap="False"></HeaderStyle> <Columns> <asp:TemplateField HeaderText="编号" Visible="false"> <ItemTemplate> <asp:Label ID="lbl_ID" runat="server" Text='<%# Bind("ID") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="医院名称"> <ItemTemplate> <asp:Label ID="lbl_yymc" runat="server" Text='<%# Bind("yymc") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="供货商编码"> <ItemTemplate> <asp:Label ID="lbl_ghsbm" runat="server" Text='<%# Bind("ghsbm") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="中心编码"> <ItemTemplate> <asp:Label ID="txt_zxbm" runat="server" Text='<%# Bind("zxbm") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="药品编码"> <ItemTemplate> <asp:Label ID="lbl_ypbm" runat="server" Text='<%# Bind("ypbm") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="药品名称"> <ItemTemplate> <asp:Label ID="lbl_ypmc" runat="server" Text='<%# Bind("ypmc") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="药品规格"> <ItemTemplate> <asp:Label ID="lbl_ypgg" runat="server" Text='<%# Bind("ypgg") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="药品单位"> <ItemTemplate> <asp:Label ID="lbl_ypdw" runat="server" Text='<%# Bind("ykdw") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="返利形式"> <ItemTemplate> <asp:Label ID="txt_flxs" runat="server" Text='<%# Bind("flxs") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="厂家名称"> <ItemTemplate> <asp:Label ID="lbl_sccj" runat="server" Text='<%# Bind("cjmc") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="供货单位"> <ItemTemplate> <asp:Label ID="lbl_ghdw" runat="server" Text='<%# Bind("ghdw") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="底 价"> <ItemTemplate> <asp:Label ID="txt_dj" runat="server" Text='<%# Bind("dj") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="折扣率"> <ItemTemplate> <asp:Label ID="txt_zkl" runat="server" Text='<%# Bind("zkl") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="开票价"> <ItemTemplate> <asp:Label ID="txt_kpj" runat="server" Text='<%# Bind("kpj") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="零售价"> <ItemTemplate> <asp:Label ID="lbl_lsj" runat="server" Text='<%# Bind("lsj") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="最新零售价"> <ItemTemplate> <asp:Label ID="lbl_zxlsj" runat="server" Text='<%# Bind("zxlsj") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="售价差价"> <ItemTemplate> <asp:Label ID="txt_sjcj" runat="server" Text='<%# Bind("lscj") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="成本价"> <ItemTemplate> <asp:Label ID="txt_cbj" runat="server" Text='<%# Bind("cbj") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="折 扣"> <ItemTemplate> <asp:Label ID="txt_zk" runat="server" Text='<%# Bind("zk") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="净利润"> <ItemTemplate> <asp:Label ID="txt_jlr" runat="server" Text='<%# Bind("jlr") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="业务费"> <ItemTemplate> <asp:Label ID="txt_ywf" runat="server" Text='<%# Bind("xywf") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="毛利率"> <ItemTemplate> <asp:Label ID="txt_mll" runat="server" Text='<%# Bind("mll") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="年"> <ItemTemplate> <asp:Label ID="lbl_nf" runat="server" Text='<%# Bind("nian") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="月"> <ItemTemplate> <asp:Label ID="lbl_yf" runat="server" Text='<%# Bind("yue") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="管理" ShowHeader="False"> <EditItemTemplate> <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="True" CommandName="Update" Text="更新"></asp:LinkButton> &nbsp;<asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" CommandName="Cancel" Text="取消"></asp:LinkButton> </EditItemTemplate> <ItemTemplate> <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" CommandName="Edit" Text="编辑"></asp:LinkButton> &nbsp;<asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" CommandName="Update" Text="修改"></asp:LinkButton> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> </div> <cc2:PageTool ID="PageTool1" runat="server" Number="1" PageRows="10" PageCount="100"> </cc2:PageTool> </div> </form> </body> </html> ``` ``` 后台代码: using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace CenterBase.供应链管理 { public partial class YPCGJCB : System.Web.UI.Page { CenterBaseBLL.YPCGMC cbby = new CenterBaseBLL.YPCGMC(); private static int pCount = 0;//总页数 private static int rCount = 0;//总数据数 private static int pageIndex = 1;//当前页 private static int pageSize = 20;//页面大小 private static string tableName = "View_YPJCB";//表名 private static string fields = "ID,yymc, ghsbm, zxbm, ypbm, ypmc, ypgg, ykdw, flxs,cjmc,ghdw,dj,zkl,kpj,lsj,zxlsj,lscj,cbj,zk,jlr,xywf,mll,nian,yue";//查询的字段 private static string order = "ID desc";//排序 private static string primaryKey = "ID";//关键字 private static string where = " "; protected void Page_Load(object sender, EventArgs e) { //UnobtrusiveValidationMode = UnobtrusiveValidationMode.None; //Response.AddHeader("P3P", "CP=CAO PSA OUR"); ////检测用户是否登录 //if (!CheckUserLogin()) //{ // Response.Redirect("../LoginMain.aspx"); //} ////检测用户是否具有权限 //if (!CheckUserAuthority()) //{ // Response.Redirect("../LoginMain.aspx"); //} if (!Page.IsPostBack) { //分页初始化 if (Request.QueryString["page"] == null) { pageIndex = 1; } else { pageIndex = CenterBaseTools.ConvertData.ConvertDataFromStringToInt(Request.QueryString["page"].ToString()); } ////绑定数据 //if (cbo_xs.Checked == true) //{ //} DataBinds(); //Sum(); } } protected void Btn_Download_Click(object sender, EventArgs e) { where = ""; if (sqlwhere() != "") { where = where + sqlwhere(); } DataBinds(); } public void DataBinds() { DataTable dt = new DataTable(); dt = CenterBaseBLL.PageView.GetAll(out pCount, out rCount, pageIndex, pageSize, tableName, fields, order, primaryKey, 2, 0, where); YPZKXX.DataSource = dt; YPZKXX.DataBind(); this.PageTool1.PageRows = pageSize; this.PageTool1.PageCount = rCount; } public string sqlwhere() { string yymc = txtyymc.Value.ToString(); string kssk = txtkssj.Value.ToString(); string jssj = txtjssj.Value.ToString(); string ghs = txtgys.Value.ToString(); int res = kssk.CompareTo(jssj); string sql = ""; if (yymc != "") { sql = sql + " where CYYMC = '" + yymc + "'"; } if (yymc != "" && kssk != "" && jssj != "" && res < 0) { sql = sql + " where CYYMC='" + yymc + "' and DRKRQ between '" + kssk + "' and '" + jssj + "'"; } if (yymc != "" && kssk != "" && jssj != "" && res < 0 && ghs != "") { sql = sql + " where CYYMC='" + yymc + "' and DRKRQ between '" + kssk + "' and '" + jssj + "' and CGHDW = '" + ghs + "'"; } return sql; } protected void YPCGJCXX_RowEditing(object sender, GridViewEditEventArgs e) { YPZKXX.EditIndex = e.NewEditIndex; DataBinds(); } protected void YPCGJCXX_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e) { YPZKXX.EditIndex = -1; DataBinds(); } protected void YPCGJCXX_RowUpdating(object sender, GridViewUpdateEventArgs e) { int id = Convert.ToInt32((YPZKXX.Rows[e.RowIndex].FindControl("lbl_ID") as Label).Text); string yymc = Convert.ToString((YPZKXX.Rows[e.RowIndex].FindControl("lbl_yymc") as Label).Text); string ghsbm = (YPZKXX.Rows[e.RowIndex].FindControl("txt_ghsbm") as TextBox).Text.ToString(); string zxbm = (YPZKXX.Rows[e.RowIndex].FindControl("txt_zxbm") as TextBox).Text.ToString(); string ypbm = Convert.ToString((YPZKXX.Rows[e.RowIndex].FindControl("lbl_ypbm") as Label).Text); string ypmc = Convert.ToString((YPZKXX.Rows[e.RowIndex].FindControl("lbl_ypmc") as Label).Text); string ypgg = Convert.ToString((YPZKXX.Rows[e.RowIndex].FindControl("lbl_ypgg") as Label).Text); string ypdw = Convert.ToString((YPZKXX.Rows[e.RowIndex].FindControl("lbl_ypdw") as Label).Text); string flxs = (YPZKXX.Rows[e.RowIndex].FindControl("txt_flxs") as TextBox).Text.ToString(); string cjmc = Convert.ToString((YPZKXX.Rows[e.RowIndex].FindControl("lbl_sccj") as Label).Text); string ghdw = Convert.ToString((YPZKXX.Rows[e.RowIndex].FindControl("lbl_ghdw") as Label).Text); string dj = (YPZKXX.Rows[e.RowIndex].FindControl("txt_dj") as TextBox).Text.ToString(); string zkl = (YPZKXX.Rows[e.RowIndex].FindControl("txt_zkl") as TextBox).Text.ToString(); string kpj = (YPZKXX.Rows[e.RowIndex].FindControl("txt_kpj") as TextBox).Text.ToString(); string lsj = Convert.ToString((YPZKXX.Rows[e.RowIndex].FindControl("lbl_lsj") as Label).Text); string dykpj = (YPZKXX.Rows[e.RowIndex].FindControl("txt_dykpj") as TextBox).Text.ToString(); string zxlsj = Convert.ToString((YPZKXX.Rows[e.RowIndex].FindControl("lbl_zxlsj") as Label).Text); string sjcj = (YPZKXX.Rows[e.RowIndex].FindControl("txt_sjcj") as TextBox).Text.ToString(); string cbj = (YPZKXX.Rows[e.RowIndex].FindControl("txt_cbj") as TextBox).Text.ToString(); string zk = (YPZKXX.Rows[e.RowIndex].FindControl("txt_zk") as TextBox).Text.ToString(); string jlr = (YPZKXX.Rows[e.RowIndex].FindControl("txt_jlr") as TextBox).Text.ToString(); string ywf = (YPZKXX.Rows[e.RowIndex].FindControl("txt_ywf") as TextBox).Text.ToString(); string mll = (YPZKXX.Rows[e.RowIndex].FindControl("txt_mll") as TextBox).Text.ToString(); string nf = Convert.ToString((YPZKXX.Rows[e.RowIndex].FindControl("lbl_nf") as Label).Text); string yf = Convert.ToString((YPZKXX.Rows[e.RowIndex].FindControl("lbl_yf") as Label).Text); DateTime time = System.DateTime.Now; string sql = "insert into YPFXJCXX(yymc,ghsbm,zxbm,ypbm,ypmc,ypgg,ykdw,flxs,cjmc,ghdw,dj,zkl,kpj,lsj,dykpj,zxlsj,lscj,cbj,zk,jlr,xywf,mll,nian,yue,ITime)" + "values(" + "'" + yymc + "'," + "'" + ghsbm + "'," + "'" + zxbm + "'," + "'" + ypbm + "'," + "'" + ypmc + "'," + "'" + ypgg + "'," + "'" + ypdw + "'," + "'" + flxs + "'," + "'" + cjmc + "'," + "'" + ghdw + "'," + "'" + dj + "'," + "'" + zkl + "'," + "'" + kpj + "'," + "'" + lsj + "'," + "'" + dykpj + "'," + "'" + zxlsj + "'," + "'" + sjcj + "'," + "'" + cbj + "'," + "'" + zk + "'," + "'" + jlr + "'," + "'" + ywf + "'," + "'" + mll + "'," + "'" + nf + "'," + "'" + yf + "'," + "'" + time + "'" + ")"; CenterBaseDAL.ExecuteSql exec = new CenterBaseDAL.ExecuteSql(); int falg = exec.run(sql); if (falg == 1) { Response.Write("<script>alert('更新成功')</script>"); Response.Write("<script>window.location.href='YPCGJCB.aspx'</script>"); Response.End(); } else { Response.Write("<script>alert('更新失败')</script>"); } } protected void btn_dr_Click(object sender, EventArgs e) { Response.Write("<script>window.open('药品销售明细查询/Improt.aspx','_blank')</script>"); } } } ``` 我用自己方法添加了一列行号,求大神指点!!
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
JSON解析——net.sf.json.JSONObject
简介 在程序开发过程中,在参数传递,函数返回值等方面,越来越多的使用JSON。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,同时也易于机器解析和生成、易于理解、阅读和撰写,而且Json采用完全独立于语言的文本格式,这使得Json成为理想的数据交换语言。 JSON建构于两种结构: “名称/值”对的集合(A Collection of name/va...
卸载 x 雷某度!GitHub 标星 1.5w+,从此我只用这款全能高速下载工具!
作者 | Rocky0429 来源 | Python空间 大家好,我是 Rocky0429,一个喜欢在网上收集各种资源的蒟蒻… 网上资源眼花缭乱,下载的方式也同样千奇百怪,比如 BT 下载,磁力链接,网盘资源等等等等,下个资源可真不容易,不一样的方式要用不同的下载软件,因此某比较有名的 x 雷和某度网盘成了我经常使用的工具。 作为一个没有钱的穷鬼,某度网盘几十 kb 的下载速度让我...
2019年还剩1天,我从外包公司离职了
这日子过的可真快啊,2019年还剩1天,外包公司干了不到3个月,我离职了
我一个37岁的程序员朋友
周末了,人一旦没有点事情干,心里就瞎想,而且跟几个老男人坐在一起,更容易瞎想,我自己现在也是 30 岁了,也是无时无刻在担心自己的职业生涯,担心丢掉工作没有收入,担心身体机能下降,担心突...
计算机网络的核心概念
这是《计算机网络》系列文章的第二篇文章 我们第一篇文章讲述了计算机网络的基本概念,互联网的基本名词,什么是协议以及几种接入网以及网络传输的物理媒体,那么本篇文章我们来探讨一下网络核心、交换网络、时延、丢包、吞吐量以及计算机网络的协议层次和网络攻击。 网络核心 网络的核心是由因特网端系统和链路构成的网状网络,下面这幅图正确的表达了这一点 那么在不同的 ISP 和本地以及家庭网络是如何交换信息的呢?...
python自动下载图片
近日闲来无事,总有一种无形的力量萦绕在朕身边,让朕精神涣散,昏昏欲睡。 可是,像朕这么有职业操守的社畜怎么能在上班期间睡瞌睡呢,我不禁陷入了沉思。。。。 突然旁边的IOS同事问:‘嘿,兄弟,我发现一个网站的图片很有意思啊,能不能帮我保存下来提升我的开发灵感?’ 作为一个坚强的社畜怎么能说自己不行呢,当时朕就不假思索的答应:‘oh, It’s simple. Wait for me for a ...
一名大专同学的四个问题
【前言】   收到一封来信,赶上各种事情拖了几日,利用今天要放下工作的时机,做个回复。   2020年到了,就以这一封信,作为开年标志吧。 【正文】   您好,我是一名现在有很多困惑的大二学生。有一些问题想要向您请教。   先说一下我的基本情况,高考失利,不想复读,来到广州一所大专读计算机应用技术专业。学校是偏艺术类的,计算机专业没有实验室更不用说工作室了。而且学校的学风也不好。但我很想在计算机领...
复习一周,京东+百度一面,不小心都拿了Offer
京东和百度一面都问了啥,面试官百般刁难,可惜我全会。
Java 14 都快来了,为什么还有这么多人固守Java 8?
从Java 9开始,Java版本的发布就让人眼花缭乱了。每隔6个月,都会冒出一个新版本出来,Java 10 , Java 11, Java 12, Java 13, 到2020年3月份,...
达摩院十大科技趋势发布:2020 非同小可!
【CSDN编者按】1月2日,阿里巴巴发布《达摩院2020十大科技趋势》,十大科技趋势分别是:人工智能从感知智能向认知智能演进;计算存储一体化突破AI算力瓶颈;工业互联网的超融合;机器间大规模协作成为可能;模块化降低芯片设计门槛;规模化生产级区块链应用将走入大众;量子计算进入攻坚期;新材料推动半导体器件革新;保护数据隐私的AI技术将加速落地;云成为IT技术创新的中心 。 新的画卷,正在徐徐展开。...
轻松搭建基于 SpringBoot + Vue 的 Web 商城应用
首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算资源,并以弹性伸缩的方式运行用户代码,而用户只需根据实际代码运行所消耗的资源进行付费。Fun: Fun 是一个用于支持 Serverless 应用部署的工具,能帮助您便捷地管理函数计算、API ...
讲真,这两个IDE插件,可以让你写出质量杠杠的代码
周末躺在床上看《拯救大兵瑞恩》 周末在闲逛的时候,发现了两个优秀的 IDE 插件,据说可以提高代码的质量,我就安装了一下,试了试以后发现,确实很不错,就推荐给大家。 01、Alibaba Java 代码规范插件 《阿里巴巴 Java 开发手册》,相信大家都不会感到陌生,其 IDEA 插件的下载次数据说达到了 80 万次,我今天又贡献了一次。嘿嘿。 该项目的插件地址: https://github....
Python+OpenCV实时图像处理
目录 1、导入库文件 2、设计GUI 3、调用摄像头 4、实时图像处理 4.1、阈值二值化 4.2、边缘检测 4.3、轮廓检测 4.4、高斯滤波 4.5、色彩转换 4.6、调节对比度 5、退出系统 初学OpenCV图像处理的小伙伴肯定对什么高斯函数、滤波处理、阈值二值化等特性非常头疼,这里给各位分享一个小项目,可通过摄像头实时动态查看各类图像处理的特点,也可对各位调参、测试...
2020年一线城市程序员工资大调查
人才需求 一线城市共发布岗位38115个,招聘120827人。 其中 beijing 22805 guangzhou 25081 shanghai 39614 shenzhen 33327 工资分布 2020年中国一线城市程序员的平均工资为16285元,工资中位数为14583元,其中95%的人的工资位于5000到20000元之间。 和往年数据比较: yea...
为什么猝死的都是程序员,基本上不见产品经理猝死呢?
相信大家时不时听到程序员猝死的消息,但是基本上听不到产品经理猝死的消息,这是为什么呢? 我们先百度搜一下:程序员猝死,出现将近700多万条搜索结果: 搜索一下:产品经理猝死,只有400万条的搜索结果,从搜索结果数量上来看,程序员猝死的搜索结果就比产品经理猝死的搜索结果高了一倍,而且从下图可以看到,首页里面的五条搜索结果,其实只有两条才是符合条件。 所以程序员猝死的概率真的比产品经理大,并不是错...
害怕面试被问HashMap?这一篇就搞定了!
声明:本文以jdk1.8为主! 搞定HashMap 作为一个Java从业者,面试的时候肯定会被问到过HashMap,因为对于HashMap来说,可以说是Java集合中的精髓了,如果你觉得自己对它掌握的还不够好,我想今天这篇文章会非常适合你,至少,看了今天这篇文章,以后不怕面试被问HashMap了 其实在我学习HashMap的过程中,我个人觉得HashMap还是挺复杂的,如果真的想把它搞得明明白...
毕业5年,我问遍了身边的大佬,总结了他们的学习方法
我问了身边10个大佬,总结了他们的学习方法,原来成功都是有迹可循的。
程序员如何通过造轮子走向人生巅峰?
前言:你所做的事情,也许暂时看不到成果。但不要灰心,你不是没有成长,而是在扎根。 程序员圈经常流行的一句话:“不要重复造轮子”。在计算机领域,我们将封装好的组件、库,叫做轮子。因为它可以拿来直接用,直接塞进我们的项目中,就能实现对应的功能。 有些同学会问,人家都已经做好了,你再来重新弄一遍,有什么意义?这不是在浪费时间吗。 殊不知,造轮子是一种学习方式,能快速进步,造得好,是自己超强能力的表...
推荐10个堪称神器的学习网站
每天都会收到很多读者的私信,问我:“二哥,有什么推荐的学习网站吗?最近很浮躁,手头的一些网站都看烦了,想看看二哥这里有什么新鲜货。” 今天一早做了个恶梦,梦到被老板辞退了。虽然说在我们公司,只有我辞退老板的份,没有老板辞退我这一说,但是还是被吓得 4 点多都起来了。(主要是因为我掌握着公司所有的核心源码,哈哈哈) 既然 4 点多起来,就得好好利用起来。于是我就挑选了 10 个堪称神器的学习网站,推...
这些软件太强了,Windows必装!尤其程序员!
Windows可谓是大多数人的生产力工具,集娱乐办公于一体,虽然在程序员这个群体中都说苹果是信仰,但是大部分不都是从Windows过来的,而且现在依然有很多的程序员用Windows。 所以,今天我就把我私藏的Windows必装的软件分享给大家,如果有一个你没有用过甚至没有听过,那你就赚了????,这可都是提升你幸福感的高效率生产力工具哦! 走起!???? NO、1 ScreenToGif 屏幕,摄像头和白板...
阿里面试一个ArrayList我都能跟面试官扯半小时
我是真的没想到,面试官会这样问我ArrayList。
曾经优秀的人,怎么就突然不优秀了。
职场上有很多辛酸事,很多合伙人出局的故事,很多技术骨干被裁员的故事。说来模板都类似,曾经是名校毕业,曾经是优秀员工,曾经被领导表扬,曾经业绩突出,然而突然有一天,因为种种原因,被裁员了,...
大学四年因为知道了这32个网站,我成了别人眼中的大神!
依稀记得,毕业那天,我们导员发给我毕业证的时候对我说“你可是咱们系的风云人物啊”,哎呀,别提当时多开心啦????,嗯,我们导员是所有导员中最帅的一个,真的???? 不过,导员说的是实话,很多人都叫我大神的,为啥,因为我知道这32个网站啊,你说强不强????,这次是绝对的干货,看好啦,走起来! PS:每个网站都是学计算机混互联网必须知道的,真的牛杯,我就不过多介绍了,大家自行探索,觉得没用的,尽管留言吐槽吧???? 社...
良心推荐,我珍藏的一些Chrome插件
上次搬家的时候,发了一个朋友圈,附带的照片中不小心暴露了自己的 Chrome 浏览器插件之多,于是就有小伙伴评论说分享一下我觉得还不错的浏览器插件。 我下面就把我日常工作和学习中经常用到的一些 Chrome 浏览器插件分享给大家,随便一个都能提高你的“生活品质”和工作效率。 Markdown Here Markdown Here 可以让你更愉快的写邮件,由于支持 Markdown 直接转电子邮...
看完这篇HTTP,跟面试官扯皮就没问题了
我是一名程序员,我的主要编程语言是 Java,我更是一名 Web 开发人员,所以我必须要了解 HTTP,所以本篇文章就来带你从 HTTP 入门到进阶,看完让你有一种恍然大悟、醍醐灌顶的感觉。 最初在有网络之前,我们的电脑都是单机的,单机系统是孤立的,我还记得 05 年前那会儿家里有个电脑,想打电脑游戏还得两个人在一个电脑上玩儿,及其不方便。我就想为什么家里人不让上网,我的同学 xxx 家里有网,每...
史上最全的IDEA快捷键总结
现在Idea成了主流开发工具,这篇博客对其使用的快捷键做了总结,希望对大家的开发工作有所帮助。
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
谁是华为扫地僧?
是的,华为也有扫地僧!2020年2月11-12日,“养在深闺人不知”的华为2012实验室扫地僧们,将在华为开发者大会2020(Cloud)上,和大家见面。到时,你可以和扫地僧们,吃一个洋...
Idea 中最常用的10款插件(提高开发效率),一定要学会使用!
学习使用一些插件,可以提高开发效率。对于我们开发人员很有帮助。这篇博客介绍了开发中使用的插件。
AI 没让人类失业,搞 AI 的人先失业了
最近和几个 AI 领域的大佬闲聊 根据他们讲的消息和段子 改编出下面这个故事 如有雷同 都是巧合 1. 老王创业失败,被限制高消费 “这里写我跑路的消息实在太夸张了。” 王葱葱哼笑一下,把消息分享给群里。 阿杰也看了消息,笑了笑。在座几位也都笑了。 王葱葱是个有名的人物,21岁那年以全额奖学金进入 KMU 攻读人工智能博士,累计发表论文 40 余篇,个人技术博客更是成为深度学习领域内风向标。 ...
2020年,冯唐49岁:我给20、30岁IT职场年轻人的建议
点击“技术领导力”关注∆每天早上8:30推送 作者|Mr.K 编辑| Emma 来源|技术领导力(ID:jishulingdaoli) 前天的推文《冯唐:职场人35岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其实,冯唐写了不少关于职场方面的文章,都挺不错的。可惜大家只记住了“春风十里不如你”、“如何避免成为油腻腻的中年人”等不那么正经的文章。 本文整理了冯...
最全最强!世界大学计算机专业排名总结!
我正在参与CSDN200进20,希望得到您的支持,扫码续投票5次。感谢您! (为表示感谢,您投票后私信我,我把我总结的人工智能手推笔记和思维导图发送给您,感谢!) 目录 泰晤士高等教育世界大学排名 QS 世界大学排名 US News 世界大学排名 世界大学学术排名(Academic Ranking of World Universities) 泰晤士高等教育世界大学排名 中国共...
作为一名大学生,如何在B站上快乐的学习?
B站是个宝,谁用谁知道???? 作为一名大学生,你必须掌握的一项能力就是自学能力,很多看起来很牛X的人,你可以了解下,人家私底下一定是花大量的时间自学的,你可能会说,我也想学习啊,可是嘞,该学习啥嘞,不怕告诉你,互联网时代,最不缺的就是学习资源,最宝贵的是啥? 你可能会说是时间,不,不是时间,而是你的注意力,懂了吧! 那么,你说学习资源多,我咋不知道,那今天我就告诉你一个你必须知道的学习的地方,人称...
那些年,我们信了课本里的那些鬼话
教材永远都是有错误的,从小学到大学,我们不断的学习了很多错误知识。 斑羚飞渡 在我们学习的很多小学课文里,有很多是错误文章,或者说是假课文。像《斑羚飞渡》: 随着镰刀头羊的那声吼叫,整个斑羚群迅速分成两拨,老年斑羚为一拨,年轻斑羚为一拨。 就在这时,我看见,从那拨老斑羚里走出一只公斑羚来。公斑羚朝那拨年轻斑羚示意性地咩了一声,一只半大的斑羚应声走了出来。一老一少走到伤心崖,后退了几步,突...
立即提问

相似问题