jquery实现点击按钮某一列按照数字大小进行排序

如图 这是最初的排序
图片说明

操作后显示成这样
步骤1
图片说明
结果
图片说明
附上代码图,希望大神可以写一个操作程序

 <?php

header("Content-type:text/html;charset=utf-8");
?>

<div class="import-index" xmlns="http://www.w3.org/1999/html">
    <h1>测试排序</h1>
    <div style="margin-left: 100px; width: 900px;">
        <div style=" margin-top: 80px;">
            <h2>
                <span style="margin-left: 650px;"><input class="btn btn-success" type="button" style="height:30px; line-height:10px;width:150px;font-size:14px;padding-left:5px;" onclick="SortTb()" value="排序刷新"/></span>
            </h2>
        </div>
        <table border="2" style=" width: 900px" id="matter">
            <tr align="center">
                <td style="padding: 5px;">序号</td>
                <td style="padding: 5px;">标题</td>
                <td style="padding: 5px;">备注</td>
                <td style="padding: 5px;">排序</td>
                <td style="padding: 5px;"><input type="checkbox"/>&nbsp剔除</td>
            </tr>
                <tr align="center">
                        <td style="padding: 5px;" id="test">125</td>
                        <td style="padding: 5px;">在浪荡不羁的日子里,勇闯天涯.....</td>
                        <td style="padding: 5px;">打滚分组</td>
                        <td style="padding: 3px;"><input size="3" type="text" name="num" value="1"/></td>
                        <td><input type="checkbox"  data-title="快乐" data-index="2"
                                   data-mark="打滚分组" data-num="1"name="remove[]"/></td>
                    </tr>
            <tr align="center">
                <td style="padding: 5px;" id="test">126</td>
                <td style="padding: 5px;">人生何处不相逢.......</td>
                <td style="padding: 5px;">打滚分组</td>
                <td style="padding: 3px;"><input size="3" type="text" name="num" value="2"/></td>
                <td><input type="checkbox"  data-title="快乐" data-index="2"
                           data-mark="打滚分组" data-num="1"name="remove[]"/></td>
            </tr>
            <tr align="center">
                <td style="padding: 5px;" id="test">123</td>
                <td style="padding: 5px;">你快乐吗,我很快乐....</td>
                <td style="padding: 5px;">打滚分组</td>
                <td style="padding: 3px;"><input size="3" type="text" name="num" value="3"/></td>
                <td><input type="checkbox"  data-title="快乐" data-index="2"
                           data-mark="打滚分组" data-num="1"name="remove[]"/></td>
            </tr>
            <tr align="center">
                <td style="padding: 5px;" id="test">124</td>
                <td style="padding: 5px;">昨天很美好,将来会怎样?.....</td>
                <td style="padding: 5px;">打滚分组</td>
                <td style="padding: 3px;"><input size="3" type="text" name="num" value="4"/></td>
                <td><input type="checkbox"  data-title="快乐" data-index="2"
                           data-mark="打滚分组" data-num="1"name="remove[]"/></td>
            </tr>
        </table>

    </div>
</div>
<script language="JavaScript" src="jquery-1.7.2.min.js"></script><!--注意引进JQ-->
<script>
    function SortTb(){
//    alert('hello');
    }
</script>

2个回答


    function SortTb() {
        var trs = [], matter = document.getElementById('matter'), allRows = matter.rows;
        for (var i = 1; i < allRows.length; i++) trs.push(allRows[i]);
        trs.sort(function (tr1, tr2) { return parseInt(tr1.getElementsByTagName('input')[0].value) - parseInt(tr2.getElementsByTagName('input')[0].value) });
        for (var i = 0; i < trs.length; i++) matter.tBodies[0].appendChild(trs[i]);
    }
come_on_air
come_on_air 好好学习了,谢谢大神!!
接近 4 年之前 回复

这是源代码
<?php

header("Content-type:text/html;charset=utf-8");
?>

测试排序

序号 标题 备注 排序 &nbsp剔除
125 在浪荡不羁的日子里,勇闯天涯..... 打滚分组
126 人生何处不相逢....... 打滚分组
123 你快乐吗,我很快乐.... 打滚分组
124 昨天很美好,将来会怎样?..... 打滚分组
function SortTb(){ // alert('hello'); }

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
如何用jquery实现点击“删除”行删除后,选项重新排列;

如何用jquery实现点击“删除”行删除后,选项重新排列; 例我增加到10行后,我点击删除选项5,剩下的行按1-9重新排列 ``` <script> function add(){ var val = $('#limit').val(); var lastInput = $('#contain input:last'); var phName = lastInput.attr('placeholder'); phName = phName.replace("选项",""); phName = parseInt(phName,10)+1; if(parseInt(val,10)>=parseInt(phName,10)){ $('<div class="inputs"><input input type="text" id="option'+(phName)+'" name="option'+(phName)+'" maxlength="30" style="width: 80% " placeholder="选项'+phName+' " /><span onclick=del(this)>删除</span></div>').insertAfter(lastInput.parent('div')); }else{ alert('超出了最大项'); } } </script> ``` ``` <tr id="tr"> <td class="table_th" >题目选项: <td width="" id="contain"> <div class='inputs'> <input type="text" id="option1" name="option1" maxlength="30" style="width: 80%" placeholder="选项1" value="${questionNaireQuestion.option1 }"/><font color="red"> *</font></div> <div class='inputs'><input type="text" id="option2" name="option2" maxlength="30" style="width: 80%"" placeholder="选项2"value="${questionNaireQuestion.option2 }" />&nbsp;</div> <div class='inputs'><input type="text" id="option3" name="option3" maxlength="30" style="width: 80% " " placeholder="选项3"value="${questionNaireQuestion.option3 }" /><span onclick=del(this)>删除</span></div> <div class='inputs'><input type="text" id="option4" name="option4" maxlength="30" style="width: 80% " placeholder="选项4" value="${questionNaireQuestion.option4 }"/><span onclick=del(this)>删除</span></div> <div><a href="javascript:;" class="addRow" id="addRow" onclick="javascript:add()">+添加选项</a></div> </td> </tr> ```

DataTables怎么给某一列加上click事件

DataTables的数据是动态生成的, $('#example tbody').on('click','tr', function () { var name = $('td', this).eq(3).text(); alert(name); } ); 这种是点击一行的任何一列都会弹出name值,我现在情况是,想点击每一行的第三列都会弹出一个框,点击其他列不会有反应求指教啊

请教一个问题 jQuery 如何给table的每一行的指定列加样式

``` for(var i=2;i<rowCount;i++){ var days = planDaysArray[i-2]; var newStarDate = planNumArray[i-2]+2; for(var m=0;m<days;m++){ $("#contentTable tr:eq("+i+") td:eq("+newStarDate+")").addClass("plan_back_color"); newStarDate = newStarDate+1; } } ``` 这行代码为什么会给table的偶数行加上了样式 我是要给每一行都加样式的 我并没有指定偶数行 求解!

使用js点击实现正序倒序排列

``` <!doctype html> <html> <head> <meta charset="utf-8" /> <meta keywords="JavaScript" /> <meta content="1" /> <title>1</title> <script language="javascript" type="text/javascript" src="js/jquery-3.3.1.js"></script> <style type="text/css"> table, table td, table th { border: none; vertical-align: top; border-collapse: collapse; word-break: break-all; } .MainTable { width: 500px; line-height: 45px; margin: auto; text-align: left; } .MainTable tr { border-bottom:1px solid #E1E1E1; } .MainTable td { padding: 0 10px 0 0; } /*正序排列样式*/ .sort_asc { background:url(images/sorticon.png) 55px 18px no-repeat; cursor:pointer; } /*倒序排列样式*/ .sort_desc { background:url(images/sorticon.png) 55px -18px no-repeat; cursor:pointer; } .list_sort { width: 60px; text-align: center; } </style> </head> <body> <div class="divframe"> <table class="MainTable"> <thead> <tr> <th class="sort_asc list_sort" id="sortID">序号</th> <th>内容</th> </tr> </thead> <tbody id="pageContent"> <tr> <td class="list_sort">1</td> <td>1</td> </tr> <tr> <td class="list_sort">2</td> <td>2</td> </tr> <tr> <td class="list_sort">3</td> <td>3</td> </tr> <tr> <td class="list_sort">4</td> <td>4</td> </tr> <tr> <td class="list_sort">5</td> <td>5</td> </tr> <tr> <td class="list_sort">6</td> <td>6</td> </tr> <tr> <td class="list_sort">7</td> <td>7</td> </tr> </tbody> </table> </div> </body> <script type="text/javascript"> $('#sortID').click(function (){ }) </script> </html> ```

点击切换升序降序排列的问题

<a href="__URL__/index.html?type=search&{$searchUrl.borrow_duration.url}&{$searchUrl.borrow_status.url}&orderby=borrow_money">借款金额<i></i></a> <a href="__URL__/index.html?type=search&{$searchUrl.borrow_duration.url}&{$searchUrl.borrow_status.url}&orderby=rate">年利率<i></i></a> 现在点击借款金额或者年利率是升序排序 怎么让他再点一下变成降序再点一下又变成升序

关于点击升序降序的问题

在页面上有两个按钮一个升序一降序,我用的sql 存储过程 我是想在数据库判断参数来执行升序或者降序,急··········

jqgrid自定义操作列问题,

![colmodel](https://img-ask.csdn.net/upload/201710/16/1508122546_720892.png) ![修改方法](https://img-ask.csdn.net/upload/201710/16/1508122603_465745.png) ![操作图](https://img-ask.csdn.net/upload/201710/16/1508122650_686315.png) 点击修改总是提示 editdailog is not defined - -

datatables中删除数据问题,最后一页只有一条数据删除跳转前一页

datatable显示数据时,当我在最后一页只有一条数据时删除它,想让它跳转到前一页怎么处理。或者一页有10条数据,添加一条数据之后跳转到第二页怎么处理。比如 一共有31条数据,那么分页为4页,第四页只有一条数据,当我把它删除时,则程序应该 跳到第三页显示,但是其仍然停留在没有第四页的那儿,这个怎么处理 ![![图片说明](https://img-ask.csdn.net/upload/201801/19/1516349274_490491.png)图片说明](https://img-ask.csdn.net/upload/201801/19/1516349260_525665.png) function getData(){ var id = 0; var cycle=$("#cycleStatus").val(); var flag = $("#flag").val(); var table = $('#userList').DataTable({ "destroy": true, //可以重新初始化,用于搜索 "lengthChange": false, "ordering": false, //排序 "info": true, // "autoWidth": true, //宽度自动 "paging": true, //分页 "searching": false, //全局搜索关闭 "processing": true, //开启显示‘正在加载.../processing’ "serverSide":true, //true代表后台处理分页,false代表前台处理分页 "ajax" : { url:"${pageContext.request.contextPath}/listAll", type:"get", data:{ "sendcycle":cycle, "keyWord":flag } }, //参数显示 "columns": [ {"data": null,'sClass':"text-center","width":"6%"}, /*{"data": "id", 'sClass': "text-center","width":"6%"},*/ {"data": "sourcename", 'sClass': "text-center","width":"8%",}, {"data": "purposename", 'sClass': "text-center","width":"8%",}, {"data": "needname", 'sClass': "text-center","width":"8%"}, {"data": "needman", 'sClass': "text-center","width":"8%",}, {"data": "sendcycle", 'sClass': "text-center","width":"8%", "render": function ( data, type, full, meta ) { var str=""; if(data==0){ str="天"; } if(data ==1){ str ="月"; } if(data ==2){ str="年"; } return str; } }, {"data": "lasttime", 'sClass': "text-center","width":"8%", "render": function ( data, type, full, meta ) { var str=""; if(full.sendcycle==0){ str=data+"天"; } if(full.sendcycle==1){ str=data+"月"; } if(full.sendcycle==2){ str=data+"年"; } return str; } }, {"data": "createtime", 'sClass': "text-center","width":"18%",}, {"data": "createman", 'sClass': "text-center","width":"8%",}, {"data":"id" , 'sClass': "text-center","width":"16%", "render": function (data, type, full, meta ) { var str = ""; <shiro:hasPermission name="update"> str += "<font color='blue' data-toggle='modal' data-target='#accept' onclick=updateUserId(" + data +");>[更新]</font>&nbsp;"; </shiro:hasPermission> <shiro:hasPermission name="delete"> str += "<font color='blue' data-toggle='modal' data-target='#accept' onclick=deleteUserId(" + data +");>[删除]</font>&nbsp;"; </shiro:hasPermission> /*下发地市*/ str += "<font color='blue' data-toggle='modal' data-target='#accept' onclick=sendAreaId(" + data +");>[下发地市]</font>&nbsp;"; /*var time = full.createtime.split("-");*/ /*时间戳*/ var time =Date.parse(new Date(full.createtime)); var now =Date.parse(new Date()); if(full.sendcycle==0){ var newDate=new Date(); var day=full.lasttime; /*过期时间*/ newDate.setTime(time+1000*3600*24*day); var date2=formatDate(newDate); var date2Stamp=Date.parse(new Date(date2)); if(date2Stamp<now){ return str+="<font color='red' data-toggle='modal' data-target='#accept';>[已过期]</font>&nbsp;"; }else{ return str+="<font color='green' data-toggle='modal' data-target='#accept';>[未过期]</font>&nbsp;"; } } if(full.sendcycle==1){ var newDate=new Date(full.createtime); var month=full.lasttime; /*不加会直接1+5=15*/ newDate.setMonth(Number(newDate.getMonth())+Number(month)); var date2=formatDate(newDate); var date2Stamp=Date.parse(new Date(date2)); if(date2Stamp<now){ return str+="<font color='red' data-toggle='modal' data-target='#accept';>[已过期]</font>&nbsp;"; }else{ return str+="<font color='green' data-toggle='modal' data-target='#accept';>[未过期]</font>&nbsp;"; } } if(full.sendcycle==2){ var newDate=new Date(full.createtime); var year=full.lasttime; newDate.setFullYear(Number(newDate.getFullYear())+Number(year)); var date2=formatDate(newDate); var date2Stamp=Date.parse(new Date(date2)); if(date2Stamp<now){ return str+="<font color='red' data-toggle='modal' data-target='#accept';>[已过期]</font>&nbsp;"; }else{ return str+="<font color='green' data-toggle='modal' data-target='#accept';>[未过期]</font>&nbsp;"; } } return str; } } ], /*"columnDefs": [{ "searchable": false, "orderable": false, "targets": 0 }], "order": [[1, 'asc']],*/ /*设置操作之后仍在当前页*/ bStateSave:true, //是否开启主题 "bJQueryUI": true, "oLanguage": { // 语言设置 "sLengthMenu": "每页显示 _MENU_ 条记录", "sZeroRecords": "抱歉, 没有找到", "sInfo": "从 _START_ 到 _END_ /共 _TOTAL_ 条数据", "sInfoEmpty": "没有数据", "sInfoFiltered": "(从 _MAX_ 条数据中检索)", "sZeroRecords": "没有检索到数据", "sSearch": "检索:", "oPaginate": { "sFirst": "首页", "sPrevious": "前一页", "sNext": "后一页", "sLast": "尾页" } } }); /*设置id自增长1*/ table.on('draw.dt',function() { table.column(0, { search: 'applied', order: 'applied' }).nodes().each(function(cell, i) { //i 从0开始,所以这里先加1 i = i+1; //服务器模式下获取分页信息,使用 DT 提供的 API 直接获取分页信息 var page = table.page.info(); //当前第几页,从0开始 var pageno = page.page; //每页数据 var length = page.length; //行号等于 页数*每页数据长度+行号 var columnIndex = (i+pageno*length); cell.innerHTML = columnIndex; }); }); /*start = $("#targetTable").dataTable().fnSettings()._iDisplayStart; total = $("#targetTable").dataTable().fnSettings().fnRecordsDisplay(); window.location.reload(); if ((total - start) == 1) { if (start > 0) { $("#sorting-advanced").dataTable().fnPageChange('previous', true); } }*/ } ``` ```

分页后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>"); } } } ``` 我用自己方法添加了一列行号,求大神指点!!

bootstrapTable显示混乱

使用bootstrapTable时,发生了按钮和文字显示混乱的问题。![图片说明](https://img-ask.csdn.net/upload/201812/25/1545706948_270165.png) 在Chrome环境运行,console上没有任何问题。 html页面如下 ``` <div id="toolbar" class="btn-group" style="margin-top:15px"> <button id="btn_add" type="button" class="btn btn-default"> <span class="glyphicon glyphicon-plus" aria-hidden="true"></span>新增 </button> <button id="btn_edit" type="button" class="btn btn-default"> <span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>修改 </button> <button id="btn_delete" type="button" class="btn btn-default"> <span class="glyphicon glyphicon-remove" aria-hidden="true"></span>删除 </button> </div> <div><table id="data-table"></table></div> ``` js页面如下 ``` $('#data-table').bootstrapTable({ toolbar:"#toolbar", striped: true, //是否显示行间隔色 cache: false, //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*) pagination: true, //是否显示分页(*) sortable: false, //是否启用排序 sortOrder: "asc", //排序方式 sidePagination: "server", //分页方式:client客户端分页,server服务端分页(*) pageNumber:1, //初始化加载第一页,默认第一页 pageSize: 10, //每页的记录行数(*) pageList: [10, 25, 50, 100], //可供选择的每页的行数(*) search: true, //是否显示表格搜索,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大 strictSearch: true, showColumns: true, //是否显示所有的列 showRefresh: true, //是否显示刷新按钮 minimumCountColumns: 1, //最少允许的列数 clickToSelect: true, //是否启用点击选中行 height: 500, //行高,如果没有设置height属性,表格自动根据记录条数觉得表格高度 uniqueId: "ID", //每一行的唯一标识,一般为主键列 showToggle:true, //是否显示详细视图和列表视图的切换按钮 cardView: false, //是否显示详细视图 detailView: false, //是否显示父子表 columns: [{ checkbox: true },{ field: 'id', title: 'Item ID' }, { field: 'name', title: 'Item Name' }, { field: 'price', title: 'Item Price' }], data: [{ id: 1, name: 'Item 1', price: '$1' }, { id: 2, name: 'Item 2', price: '$2' }] }); ```

bootstraptable-edit使用问题

![图片说明](https://img-ask.csdn.net/upload/201908/06/1565077495_685813.png) 外部的表格无法获取数据,检查contentType属性配置问题。 ``` $(function() { //初始化Table var oTable = new TableInit(); oTable.Init(); }); var TableInit = function() { var oTableInit = new Object(); //初始化Table oTableInit.Init = function() { $('#table').bootstrapTable({ url : 'list',//请求后台的URL(*) method : 'post',//请求方式(*) toolbar : '#toolbar',//工具按钮用哪个容器 striped : true,//是否显示行间隔色 cache : false,//是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*) pagination : true,//是否显示分页(*) sortable : false,//是否启用排序 sortOrder : "asc",//排序方式 queryParams : oTableInit.queryParams,//传递参数(*) sidePagination : "server",//分页方式:client客户端分页,server服务端分页(*) pageNumber : 1,//初始化加载第一页,默认第一页 pageSize : 10,//每页的记录行数(*) pageList : [ 10, 25, 50, 100 ],//可供选择的每页的行数(*) search : true,//是否显示表格搜索,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大 contentType : "application/x-www-form-urlencoded", strictSearch : true, showColumns : true,//是否显示所有的列 showRefresh : true,//是否显示刷新按钮 minimumCountColumns : 2,//最少允许的列数 clickToSelect : true,//是否启用点击选中行 height : 700,//行高,如果没有设置height属性,表格自动根据记录条数觉得表格高度 uniqueId : "id",//每一行的唯一标识,一般为主键列 showToggle : true,//是否显示详细视图和列表视图的切换按钮 cardView : false,//是否显示详细视图 detailView : false,//是否显示父子表 columns : [ { field : 'id', title : '编号' }, { field : 'name', title : '名字' }, { field : 'price', title : '价格' }, { field : 'operate', title : '操作', formatter : operateFormatter //自定义方法,添加操作按钮 }, ], rowStyle : function(row, index) { var classesArr = [ 'white', 'lightblue' ]; var strclass = ""; if (index % 2 === 0) {//偶数行 strclass = classesArr[0]; } else {//奇数行 strclass = classesArr[1]; } return { classes : strclass }; },//隔行变色 }); }; //得到查询的参数 oTableInit.queryParams = function(params) { var temp = {//这里的键的名字和控制器的变量名必须一直,这边改动,控制器也需要改成一样的 limit : params.limit,//页面大小 //pageNumber: params.pageNumber,//页码 offset : params.offset }; return temp; }; return oTableInit; }; function operateFormatter(value, row, index) {//赋予的参数 return [ '<a href="#" style="color:blue;" οnclick="edit(' + row.id + ')">编辑</a>|', '<a href="#" style="color:red;" οnclick="del(' + row.id + ')">删除</a>', ].join(''); } ``` table-edit.js ``` (function($){ 'use strict'; $.extend($.fn.bootstrapTable.defaults, { editable: false }); var BootstrapTable = $.fn.bootstrapTable.Constructor, _init = BootstrapTable.prototype.init, _initBody = BootstrapTable.prototype.initBody, _onSort = BootstrapTable.prototype.onSort, _append = BootstrapTable.prototype.append, _initHeader = BootstrapTable.prototype.initHeader ; //添加编辑表格默认属性,如何edit设置为false时,表示该列不可编辑 $.extend(true,BootstrapTable.COLUMN_DEFAULTS,{ edit:{ type:'text'//目前只支持 文本:text 下拉:select 日期:date } }); BootstrapTable.prototype.init = function () { _init.apply(this, Array.prototype.slice.apply(arguments)); var that = this; that.prevEditRow = null;//上一次编辑的行 that.columns = {};//列配置信息 that.insertRowVal = {};//新插入行的默认值 that.enableAppend = true;//允许添加新行 if (that.options.editable) { var columnObj = this['getColumns'](); $.each(columnObj,function(i,obj){ $.each(obj,function(z,col){ if(!isNaN(col.fieldIndex) && col.fieldIndex >= 0){ if(col.checkbox)col.edit = false; that.columns['column'+col.fieldIndex] = col; that.insertRowVal[col.field] = ''; } }); }); //this.initEdit(); } }; /*BootstrapTable.prototype.initHeader = function(){ _initHeader.apply(this, Array.prototype.slice.apply(arguments)); this.$container.find('.fixed-table-header').addClass('success'); };*/ BootstrapTable.prototype.initBody = function () { var that = this; _initBody.apply(this, Array.prototype.slice.apply(arguments)); if (!that.options.editable) return; this.initEdit(); //如果列是下拉框,则转换值为对应的文本 $.each(that.columns,function(indx,col){ if(col.edit && col.edit.type == 'select'){ col.edit = $.extend({},$.fn.bootstrapSelect.defaults,col.edit); if(col.edit.data.length > 0){ that.$body.find('>tr').each(function(){ if(that.getData().length < 1)return true; var rowData = that.data[$(this).data('index')];//当前点击td所在行的数据 var $td = $(this).find('td').eq(col.fieldIndex); $.each(col.edit.data,function(i,data){ if(data[col.edit.valueField] == rowData[col.field]){ $td.html(data[col.edit.textField]); } }); }); } else if(col.edit.url){ $.ajax({ url:col.edit.url, type:'post', data:col.edit.paramsType == 'json' ? JSON.stringify(col.edit.params) : col.edit.params, dataType:'json', success: function(jsonLst) { col.edit.onLoadSuccess.call(this,jsonLst); that.$body.find('>tr').each(function(){ if(that.getData().length < 1)return true; var rowData = that.data[$(this).data('index')];//当前点击td所在行的数据 var $td = $(this).find('td').eq(col.fieldIndex); $.each(jsonLst,function(i,data){ if(data[col.edit.valueField] == rowData[col.field]){ $td.html(data[col.edit.textField]); } }); }); col.edit.data = jsonLst; col.edit.url = null; }, error: function(xhr, textStatus, errorThrown){ col.edit.onLoadError.call(this); col.edit.data = []; col.edit.url = null; throw col.field+' 列下拉框数据加载失败'; } }); } } }); }; //根据行号删除指定行 BootstrapTable.prototype.removeRow = function (rowNum) { var that = this; var len = that.options.data.length; if (isNaN(rowNum)){ return; } if(that.$body.find('.editable-select').data('index') != rowNum){ recover(that); } //删除数据 that.options.data.splice(rowNum,1); if (len === that.options.data.length){ return; } var oldClass = {};//保存被标记修改的样式 that.$body.find('>tr').each(function(indx){ if($(this).hasClass('editable-modify')){ if(indx > rowNum){ oldClass[indx-1] = 'editable-modify'; } else{ oldClass[indx] = 'editable-modify'; } } }); //this.prevEditRow = null; //this.$body.find('>tr').removeClass('editable-select'); that.initBody(); //将标记改变过行的样式从新设置回去 for(var key in oldClass){ that.$body.find('>tr').eq(key).addClass(oldClass[key]); } //this.initEdit(); //没有数据时给提示加上样式 if(that.getData().length < 1){ that.$body.find('>tr').addClass('no-records-found'); } }; BootstrapTable.prototype.append = function (){ var that = this; //if(!that.enableAppend)return; var oldClass = {};//保存被标记修改的样式 that.$body.find('>tr').each(function(indx){ if($(this).hasClass('editable-modify') || $(this).hasClass('editable-insert')){ oldClass[indx] = 'editable-modify'; } }); arguments[0] = $.extend({},that.insertRowVal,arguments[0]); _append.apply(this,Array.prototype.slice.apply(arguments)); if (that.options.editable){ //that.initEdit(); setTimeout(function (){ //将标记改变过行的样式从新设置回去 for(var key in oldClass){ that.$body.find('>tr').eq(key).addClass(oldClass[key]); } that.$body.find('>tr:last').addClass('editable-modify'); that.$body.find('>tr:last').addClass('editable-insert');//双重保险,防止在快速点击添加时,为给新增行设置editable-modify属性 that.$body.find('>tr:last').click(); },60); } }; BootstrapTable.prototype.onSort = function () { _onSort.apply(this, Array.prototype.slice.apply(arguments)); var that = this; if (that.options.editable) { this.initEdit(); } }; BootstrapTable.prototype.getData = function () { return (this.searchText || this.searchCallback) ? this.data : this.options.data; }; BootstrapTable.prototype.getColumns = function () { return this.options.columns; }; /** * 获取有被修改过行的值 */ BootstrapTable.prototype.getModiDatas = function (){ var that = this; var datas = []; that.$body.find('.editable-modify').each(function(){ if(that.data[$(this).data('index')]){ datas.push(that.data[$(this).data('index')]); } }); return datas; }; /** * 获取指定列的和,参数为列下标 */ BootstrapTable.prototype.getColTotal = function (num){ var retVal = 0; this.$body.find('>tr').each(function(){ var colNum = 0; if($(this).hasClass('editable-select')){ colNum = $(this).find('td').eq(num).find('input').val(); } else{ colNum = $(this).find('td').eq(num).html(); } if(!isNaN(colNum)){//是数字才做想加 retVal += Number(colNum); } }); return retVal; }; /** * 创建可编辑表格 */ BootstrapTable.prototype.initEdit = function(){ var that = this, data = this.getData(); //this.$body.find('> tr').unbind('click').on('click' //this.$body.delegate('>tr','click' this.$body.find('> tr').unbind('click').on('click',function(){ var $tr = $(this); if($tr.hasClass('editable-select') || data.length < 1 || $tr.hasClass('no-records-found')){ return; } $tr.removeClass('no-records-found'); recover(that); that.prevEditRow = $tr; $tr.addClass('editable-select');//给当前编辑行添加样式,目前样式为空只做标识使用 that.$body.find('> tr').not(this).removeClass('editable-select'); $tr.find('td').closest('td').siblings().html(function(i,html){ initTrClick(that,this); }); }); //鼠标点击事件 $(document).bind('mousedown',function(event){ var $target = $(event.target); if(!($target.parents().andSelf().is(that.$body)) && !($target.parents().andSelf().is($('.datetimepicker')))){ setTimeout(function () { recover(that); //that.prevEditRow = null; //that.$body.find('> tr').removeClass('editable-select'); },10); }; }); }; $.fn.bootstrapTable.methods.push('getColumns', 'getModiDatas','removeRow','getColTotal'); /** * 给tr添加点击事件 */ function initTrClick(that,_this){ that.enableAppend = true; var $td = $(_this); var $tr = $td.parent(); var rowData = that.data[$tr.data('index')];//当前点击td所在行的数据 var tdIndex = $tr.children().index($td);//当前点击的td下标 var tdOpt = that.columns['column'+tdIndex]; if(!tdOpt.edit || typeof tdOpt.edit != 'object'){ return ; } $td.data('field',tdOpt.field); if(!$td.data('oldVal')){ $td.data('oldVal',$.trim(rowData[tdOpt.field])); } var height = $td.innerHeight() - 3; var width = $td.innerWidth() - 2; $td.data('style',$td.attr('style'));//保存原来的样式 $td.attr('style','margin:0px;padding:1px!important;'); var placeholder = ''; if(tdOpt.edit.required == true){ placeholder = '必填项'; } var value = rowData[tdOpt.field] == null || rowData[tdOpt.field] == ''?'':rowData[tdOpt.field]; $td.html('<div style="margin:0;padding:0;overflow:hidden;border:solid 0px red;height:'+(height)+'px;width:'+(width)+'px;">' +'<input type="text" placeholder="'+placeholder+'" value="'+value+'" style="margin-left: 0px; margin-right: 0px; padding-top: 1px; padding-bottom: 1px; width:100%;height:100%">' +'</div>'); $td.width(width); var $input = $td.find('input'); if(!tdOpt.edit.type || tdOpt.edit.type == 'text'){ if(tdOpt.edit['click'] && typeof tdOpt.edit['click'] === 'function'){ $input.unbind('click').bind('click',function(event){ tdOpt.edit['click'].call(this,event); }); } if(tdOpt.edit['focus'] && typeof tdOpt.edit['focus'] === 'function'){ $input.unbind('focus').bind('focus',function(event){ tdOpt.edit['focus'].call(this,event); }); } $input.unbind('blur').on('blur',function(event){ if(tdOpt.edit['blur'] && typeof tdOpt.edit['blur'] === 'function'){ tdOpt.edit['blur'].call(this,event); } }); } else if(tdOpt.edit.type == 'select'){ $input.bootstrapSelect(tdOpt.edit); } else if(tdOpt.edit.type == 'date'){ $td.html('<div style="margin:0;padding:0;overflow:hidden;border:solid 0px red;height:'+(height)+'px;width:'+(width)+'px;" class="input-group date form_datetime" data-link-field="dtp_editable_input">' +'<input class="form-control" type="text" value="'+value+'">' +'<span class="input-group-addon"><span class="glyphicon glyphicon-th"></span></span>' +'</div>' +'<input type="hidden" id="dtp_editable_input" value="'+value+'"/>' ); that.$body.find('.form_datetime').datetimepicker({ weekStart: 1, todayBtn: 1, autoclose: 1, todayHighlight: 1, startView: 2, forceParse: 0, language:'zh-CN', format: 'yyyy-mm-dd hh:ii:ss', pickerPosition: 'bottom-left', showMeridian: 1 }); } } /** * 恢复tr,使之处于不可编辑状态 */ function recover(that){ var isModi = false;//判断行值是否变动过 if(that.prevEditRow != null){ that.prevEditRow.find('td').closest('td').siblings().html(function(i,html){ $(this).attr('style',$(this).data('style')); var textVal = $(this).find('input[type="text"]').val(); var hiddenVal = $(this).find('input[type="hidden"]').val(); if(typeof $(this).find('input[type="text"]').bootstrapSelect('getText') != 'object'){ $(this).find('input[type="text"]').bootstrapSelect('destroy'); } if(textVal != undefined){ if($(this).data('oldVal') != (hiddenVal?hiddenVal:$.trim(textVal)) && $(this).data('field')) { that.data[that.prevEditRow.data('index')][$(this).data('field')] = hiddenVal?hiddenVal:$.trim(textVal); isModi = true; } if(that.columns['column'+i].edit.required == true){ if(textVal == null || textVal == ''){ that.enableAppend = false; return '<span style="color:red;">必填项不能为空</span>'; } } return $.trim(textVal); } }); //新值跟旧值不匹配证明被改过 if(isModi || that.prevEditRow.hasClass('editable-insert')){ that.prevEditRow.addClass('editable-modify'); } else{ that.prevEditRow.removeClass('editable-modify'); } that.prevEditRow = null; that.$body.find('> tr').removeClass('editable-select'); } } })(jQuery); ``` 哪位大神能帮忙解决下

ajax 调用外部函数,外部函数中的ajax不执行

tab(); function tab() { //alert("name:"+name); $("#table") .bootstrapTable({ url: "scol/player.action", method: 'get', //请求方式(*) toolbar: '#formTools', //工具按钮用哪个容器 striped: true, //是否显示行间隔色 cache: false, //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*) pagination: true, //是否显示分页(*) queryParams: function(params) { return { offset: params.offset, limit: params.limit, sname: $('#sname').val(), sposi: $('#sposi').val(), roles: $('#roles').val() }; }, pageSize: 4, //每页的记录行数(*) pageNumber: 1, //初始化加载第一页,默认第一页 pageList: [2, 4, 6], singleSelect: false, showColumns: true, sortable: true, //是否启用排序 sidePagination: "server", //分页方式:client客户端分页,server服务端分页(*) strictSearch: true, minimumCountColumns: 2, //最少允许的列数 clickToSelect: true, //是否启用点击选中行 showRefresh: false, //是否显示刷新按钮 uniqueId: "id", //每一行的唯一标识,一般为主键列 cardView: false, //是否显示详细视图 search: true, strictSearch: true, showColumns: true, showRefresh: true, showExport: true, onLoadError: function(data) { $('#stuinfo').bootstrapTable('removeAll'); }, columns: [{ field: 'id', title: '球员号码' }, { field: 'name', title: '球员姓名' }, { field: 'posi', title: '位置' }, { field: 'cm', title: '身高/CM' }, { field: 'kg', title: '体重/KG' }, { field: 'home', title: '籍贯' }, { field: 'birth', title: '出生日期' }, { field: 'ps', title: '备注' }, /* { field : 'yid', title : '入队时间' }, */ { field: 'year.year', title: '入队时间' }, { title: '状态', field: '', align: 'center', formatter: function(value, row, index) { var s="123"; $.ajax({ url: 'scol/eec.action', type: 'post', data: { pid: row.id }, dataType: 'json', async : false, beforeSend: function(jqXHR, settings) { }, success: function(data3, textStatus) { if(textStatus == "success") { var s1=data3.point[data3.point.length-1]; var s2=data3.point[data3.point.length-2]; if(s1-s2>8){ s="red;'>上升" }else if(s2-s1>8){ s="gray;'>下滑" }else if(s1==null||s2==null) { s="goldenrod;'>未知" } else{ s="lawngreen;'>正常" } } }, error: function(jqXHR, textStatus, errorThrown) { //充当catch(e)的角色 alert("失败!"); } }); var w = "<span style='color:"+s+"</span> "; return w ; } }, { title: '操作', field: '', align: 'center', formatter: function(value, row, index) { var w = '<a href="#" mce_href="#" onclick="detail(\'' + row.id + '\')">详细信息</a> '; var e = '<a href="#" mce_href="#" onclick="edit1(\'' + row.id+'\',\''+row.name+ '\',\'' +row.posi+ '\',\''+row.cm+ '\',\''+row.kg+ '\',\''+row.home+ '\',\''+row.birth + '\',\''+row.ps+ '\',\''+row.yid+ '\',\''+row.tid+ '\')">编辑</a> '; var d = '<a href="#" mce_href="#" onclick="del(\'' + row.id + '\',\''+row.name+'\')">删除</a> '; return w + e + d; } } ], onDblClickRow: function(row, $element) { eechart(row); } }); }; /* 删除 */ function del(pid,pname) { if(confirm("确定删除" + pname + "吗?")){ $.ajax({ url: 'scol/dps.action', type: 'post', data: { pid: pid }, dataType: 'text', /* async : false, */ beforeSend: function(jqXHR, settings) { }, success: function(data3, textStatus) { if(textStatus == "success") { alert("用户删除" + data3); $('#table').bootstrapTable('destroy'); tab(); } }, error: function(jqXHR, textStatus, errorThrown) { //充当catch(e)的角色 alert("删除失败!"); } });} }; ``` ```

jqgrid struts2整合,jqgrid显示不出数据

[code="java"] $(function() { $("#commonForm").validationEngine(); $("#searchCondition").validationEngine({promptPosition: "centerRight"}); var entry=0; // 物品列表grid var itemGrid=jQuery("#items").jqGrid( { //url : 'findItems', datatype : "json", colNames : [ 'ID', '物品名称', '物品类型', '物品等级', '说明', '显示模型', '掉落时显示模型', '要求等级', '耐力', '智力', '力量', '敏捷', '攻击力', '法术攻击力', '护甲', '魔防', '叠加数量', '物品最大数量', '需求技能', '需求技能等级', '可装备位置', '套装ID', '最大耐久', '是否可购买', '价格', '附加技能', '闪躲', '招架', '格挡', '暴击', '命中', '魔法恢复', '物品品质'], colModel : [ {name:'entry',index:'entry',width:100,sortable:false,hidden:true}, {name:'itemName',index:'itemName',width:120,sortable:false}, {name:'itemClzz',index:'itemClzz',width:100,sortable:false}, {name:'itemLevel',index:'itemLevel',width:70,sortable:false}, {name:'description',index:'description',width:300,sortable:false}, {name:'displayed',index:'displayed',width:'100',sortable:false,hidden:true},//显示模型名称 {name:'displayed2',index:'displayed2',width:'100',sortable:false,hidden:true},//掉落时显示模型名称 {name:'requiredLevel',index:'requiredLevel',width:'70',sortable:false,hidden:false},//要求等级 {name:'stamina',index:'stamina',width:'40',sortable:false,hidden:true},//耐力 {name:'intelligence',index:'intelligence',width:'40',sortable:false,hidden:true},//智力 {name:'strength',index:'strength',width:'40',sortable:false,hidden:true},//力量 {name:'agility',index:'agility',width:'40',sortable:false,hidden:true},//敏捷 {name:'attPower',index:'attPower',width:'40',sortable:false,hidden:true},//攻击力 {name:'spellPower',index:'spellPower',width:'40',sortable:false,hidden:true},//法术攻击力 {name:'armorClass',index:'armorClass',width:'40',sortable:false,hidden:true},//护甲 {name:'defmagic',index:'defmagic',width:'40',sortable:false,hidden:true},//魔防 {name:'stackAble',index:'stackAble',width:'40',sortable:false,hidden:true},//叠加数量 {name:'maxCount',index:'maxCount',width:'80',sortable:false,hidden:true},//物品最大数量 {name:'requiredSkill',index:'requiredSkill',width:'70',sortable:false,hidden:true},//需求技能 {name:'requiredSkillRank',index:'requiredSkillRank',width:'80',sortable:false,hidden:true},//需求技能等级 {name:'inventoryType',index:'inventoryType',width:'70',sortable:false,hidden:true},//可装备位置 {name:'itemset',index:'itemset',width:'60',sortable:false,hidden:true},//套装ID {name:'maxDurability',index:'maxDurability',width:'70',sortable:false,hidden:true},//最大耐久 {name:'canBuy',index:'canBuy',width:'70',sortable:false,hidden:true},//是否可购买 {name:'price',index:'price',width:'40',sortable:false,hidden:true},//价格 {name:'bonusSkill',index:'bonusSkill',width:'70',sortable:false,hidden:true},//附加技能 {name:'dodge',index:'dodge',width:'40',sortable:false,hidden:true},//闪躲 {name:'parry',index:'parry',width:'40',sortable:false,hidden:true},//招架 {name:'block',index:'block',width:'40',sortable:false,hidden:true},//格挡 {name:'crit',index:'crit',width:'40',sortable:false,hidden:true},//暴击 {name:'haste',index:'haste',width:'40',sortable:false,hidden:true},//命中 {name:'magicrestore',index:'magicrestore',width:'70',sortable:false,hidden:true},//魔法恢复 {name:'quality',index:'quality',width:'70',sortable:false,hidden:true}//物品品质 ], multiselect : true, rowNum : 15, // 一个数组用来调整表格显示的记录数,此参数值会替代rowNum参数值传给服务器端。如果为空则不显示,设置格式:[10,20,30] rowList : [ 10, 15, 500, 1000 ], pager : '#pager', sortname : 'entry', viewrecords : true, sortorder : "desc", height : 348, width : 800, caption : "物品列表", // jsonReader的属性 jsonReader : { // 这个元素指明表格所需要的数据从哪里开始 root : "items", page : "page.curPage", // 当前页 total : "page.totalPages", // 总页数 records : "page.totalRecords", // 总记录数 rows : "page.pageSize",// 每页显示的行数 sort : "page.orderBy",// 排序字段 order : "page.order",// 排序方式 // 指明每行的数据是可以重复的,如果设为false,则会从返回的数据中按名字来搜索元素,这个名字就是colModel中的名字 repeatitems : false }, prmNames : { rows : "page.pageSize", page : "page.curPage", total : "page.totalPages", records : "page.totalRecords", sort : "page.orderBy", order : "page.order" } }); itemGrid.jqGrid('navGrid','#pager',{add:false,edit:false,del:false,search:false,refresh:false}); itemGrid.jqGrid('navButtonAdd','#pager',{ caption: "列选择", onClickButton : function (){ itemGrid.jqGrid('columnChooser'); } }); /** * ----------------------------------初始化各Select------------------ */ createClzz("clzz","subClzz"); createClzz("item_clzz","item_subClzz"); createQuality("item_quality"); createQuality("quality"); /** * ---------------------------------弹出框属性设定------------------- */ //查看的弹出框设置 $("#viewItemDiv").dialog({modal:true, width:480, height:550, minHeight:550, minWidth:480,close:function(){ $("#commonForm").resetForm(); $("#viewItemDiv :text,:radio,#viewItemDiv textarea,#viewItemDiv select").removeAttr("disabled"); $(".formError").remove(); entry=0;; }}).dialog("close"); //导入的弹出框设置 $("#batchAddDiv").dialog({ modal:true, width:480, height:180, minHeight:180, minWidth:480, maxHeight:180, maxWidth:480 }).dialog("close"); /** * ---------------------------按钮相关处理--------绑定各按钮事件---------------- */ //查询按钮 $("#searchButton").click(function() { var param = $("#searchCondition").formSerialize(); var name = $("#searchCondition input:first"); if (name.val() == "") { param = param.replace("item.itemLevel=", "item.itemLevel=-1"); } itemGrid.setGridParam({ page : 1, url : "findItems.action?" + encodeURI(param) }).trigger("reloadGrid"); }); //省略若干 }) [/code] [code="java"] @Action(results = { @Result(type = "json") }, value = "findItems") public String findItems() throws Exception { // jqGrid查询转码-utf-8 Tools.decodeObject(this.item); this.page.init(this.itemService.findTotalRows(item)); System.out.println("shunxu: " + page.getOrderBy() + page.getOrder()); System.out.println("mingzi" + item.getName()); System.out.println("dengji: " + item.getItemLevel()); System.out.println("wupinleixing" + item.getClzz()); System.out.println("wupinzileixing" + item.getSubClzz()); System.out.println("pinzhi" + item.getQuality()); System.out.println("total:" + page.getTotalRecords()); if (this.page.getTotalRecords() != 0) { items = this.itemService.findItemsByCondition(item, this.page.getCurPage(), this.page.getPageSize(), this.page.getOrderBy(), this.page.getOrder()); } return "success"; } [/code] 断点在ACTION中items是得到了值的,但是jqgrid没有数据显示出来。

各位大佬,关于PHP转换json之后,js接收报错,求解!

我的测试代码,在自己电脑上运行是运行的 ``` <?php // header("content-type:text/html;charset=utf-8"); // header("Access-Control-Allow-Origin:*"); // header('Access-Control-Allow-Methods:POST'); // header('Access-Control-Allow-Headers:x-requested-with, content-type'); // header("Content-Security-Policy: upgrade-insecure-requests"); require_once(dirname(__FILE__) . './db-test/config.php'); header("Content-type: text/html; charset=utf-8"); error_reporting(0); //创建数据库连接 $mysqli = new Mysqli($dbhost, $dbuser, $dbpass, $dbname); if ($mysqli->connect_error) { die('connect error:' . $mysqli->connect_errno); } $method = !empty($_REQUEST['method']) ? trim($_REQUEST['method']) : ''; //获取时间 if ($method == "query") { $begin_time = $_GET['begin_time']; $begin = $begin_time; $finish_time = $_GET['finish_time']; $finish = $finish_time; //转换为时间戳 $begin_time = strtotime($begin_time); $finish_time = strtotime($finish_time); $selected = $_GET['selected']; //选择的 if ($selected=="jiaye"){ $sql = "SELECT * FROM wx_user where source <>'yunfeng' AND (subscribe_time>('$begin_time')) and subscribe_time<'$finish_time' ;"; }else{ $sql = "SELECT * FROM wx_user where source='yunfeng' AND (subscribe_time>('$begin_time')) and subscribe_time<'$finish_time';"; } $result = $mysqli->query($sql); $results = array(); while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { $results[] = $row; } $arr = json_encode($results,JSON_UNESCAPED_UNICODE); //echo($arr); } else { //默认筛选 //上个月的时间戳 $last_month = strtotime(date('Y-m-01 00:00:00',strtotime('-1 month'))); //获取今日开始时间戳和结束时间戳 $endToday=mktime(0,0,0,date('m'),date('d')+1,date('Y'))-1; $result = $mysqli->query("select * from wx_user where source='yunfeng' AND (subscribe_time>('$last_month')) and subscribe_time<'$endToday' "); $results = array(); while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { $results[] = $row; } $arr = json_encode($results,JSON_UNESCAPED_UNICODE); } ?> <html> <head> <!-- 设置HTML5编码--> <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport"> <!-- 设置HTML5编码--> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <!-- <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests"/> --> <title>用户关注数据</title> <!-- 最新版本的 Bootstrap 核心 CSS 文件 --> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"> <link href="https://cdn.bootcss.com/bootstrap-datetimepicker/4.17.47/css/bootstrap-datetimepicker.min.css" rel="stylesheet"> <link href="//cdn.bootcss.com/bootstrap-table/1.11.1/bootstrap-table.css" rel="stylesheet"> <script src="http://libs.baidu.com/jquery/2.1.1/jquery.min.js"></script> <script src="https://unpkg.com/tableexport.jquery.plugin/tableExport.min.js"></script> <script src="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script> <script src="https://cdn.bootcss.com/moment.js/2.18.1/moment-with-locales.min.js"></script> <script src="https://cdn.bootcss.com/bootstrap-datetimepicker/4.17.47/js/bootstrap-datetimepicker.min.js"></script> <script src="//cdn.bootcss.com/bootstrap-table/1.11.1/bootstrap-table.js"></script> <script src="//cdn.bootcss.com/bootstrap-table/1.11.1/locale/bootstrap-table-zh-CN.js"></script> <style> .Connection { display: inline-block; position: relative; margin: 0 5px 0 0; } </style> </head> <body> <h2 class="text-center"> <?php $selected = $_GET['selected']; if ($selected=="jiaye"){ echo "嘉业关注用户"; }else{ echo "云蜂关注用户"; } ?> </h2> <div class="Connection"> <div class="cell-left"> </div> </div> <div class="Connection"> <div class="cell-left"> <div class="form-group"> <select class="form-control" id="selected"> <option value="yunfeng">云蜂</option> <option <?php $selected = $_GET['selected']; if($selected==='jiaye'){ echo 'selected';}?> value="jiaye" >嘉业</option> </select> </div> 请选择起始日期: <input type='text' class="form-control" id='datetime1' style="width:200px; placeholder=" value="<?php echo $begin; ?>"""/> </div>       </div> <div class="Connection"> <div class="cell-left"> 请选择结束日期: <input type='text' class="form-control" id='datetime2' style="width:200px; placeholder=" value="<?php echo $finish; ?>"""/> </div>    </div> <div class="Connection"> <div class="cell-left"> <button class="btn btn-default" onclick="GetTime()">提交</button>    </div>   </div> <div class="Connection"> <div class="cell-left">     <button class="addBtn btn btn-default" id="exportTable"> 导出当前表格数据 </button>     </div>     </div> <script> function trim(str){ return str.replace(/(^\s*)|(\s*$)/g, ""); } $(function () { $("#datetime1").datetimepicker({ format: 'YYYY-MM-DD ', locale: moment.locale('zh-cn') }); $("#datetime2").datetimepicker({ format: 'YYYY-MM-DD ', locale: moment.locale('zh-cn') }); }); var new_data = ""; function GetTime() { var selected= $("#selected").val(); var a = $(" #datetime1").val(); var b = $(" #datetime2").val(); var a= trim(a); var b= trim(b); // alert("第一个输入框" + a) //alert("第二个输入框" + b) location.href = "admin_weixin_subscribe_yunfeng.php?method=query&selected="+selected+"&begin_time=" + a + "&finish_time=" + b; } </script> <div class="table-responsive"> <table id="mytab" class="table table-striped table-bordered"> </table> </div> <script type="text/javascript"> var arr =<?php echo $arr;?>; $(function () { $('#mytab').bootstrapTable({ data: arr, dataType: 'json', queryParams: "queryParams", showColumns: true, //测试 新加 //showRefresh: true, //是否显示刷新按钮 toolbar: "#toolbar", //工具按钮用哪个容器 // editable:true; editable: true, clickEdit: true, showExport: true, sidePagination: "true", //分页方式:client客户端分页,server服务端分页(*) //striped: true, // 是否显示行间隔色 search: true, method: 'GET', //请求方式(*) //search : "true", //是否显示表格搜索 uniqueId: "ID", //每一行的唯一标识,一般为主键列 pageSize: "20", pageList: [10, 25, 50, 100, 'All'], //可供选择的每页的行数(*) pagination: true, // 是否分页 sortable: true, // 是否启用排序 clickToSelect: true, //是否启用点击选中行 columns: [ [{ "title": "<?php $selected = $_GET['selected']; if ($selected=="jiaye"){ echo "嘉业关注用户"; }else{ echo "云蜂关注用户"; } ?>", "halign": "center", "align": "center", //合体了5个列 "colspan": 13 } ], [{ field: 'openid', title: 'openid', sortable: true }, { field: 'nickname', title: '用户昵称', sortable: true, }, { field: 'userid', title: '序号', sortable: true, }, { field: 'subscribe_time', title: '时间戳', sortable: true, }, { title: '最后关注时间',//标题 可不加 edit: false, sortable: true, formatter: function (value, row, index) { return new Date(parseInt(row.subscribe_time) * 1000).toLocaleString().replace(/:\d{1,2}$/, ' '); } }, { field: 'sex', title: '性别', sortable: true, }, { field: 'language', title: '国别', sortable: true, }, { field: 'city', title: '所在国家', sortable: true, }, { field: 'province', title: '所在省份', sortable: true, }, { field: 'country', title: '所在城市', sortable: true, }, { field: 'mark', title: '备注', sortable: true, }, { field: 'subscribe_scene', title: '添加渠道', sortable: true, }, ] ] }); $("#exportTable").click(function () { //导出 $("#mytab").tableExport({ type: "excel", escape: "false", fileName: 'XX-XX关注信息' }); }); }); </script> </body> </html> ``` 运行结果:![图片说明](https://img-ask.csdn.net/upload/201907/08/1562576383_105519.jpg) 然后把代码放到公司服务器上,就报错![图片说明](https://img-ask.csdn.net/upload/201907/08/1562576482_194553.jpg) 非常非常奇怪、,,我看了数据库格式都是UTF-8 就是 script 那里不能把php解析的json给js 变量。。 求大佬帮助!!!!!! 为什么啊,我测试的时候都能 print出 json对象啊 header也加了 我觉得逻辑完全没问题啊啊啊啊

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

CSDN:因博主近期注重写专栏文章(已超过150篇),订阅博主专栏人数在突增,近期很有可能提高专栏价格(已订阅的不受影响),提前声明,敬请理解!

CSDN:因博主近期注重写专栏文章(已超过150篇),订阅博主专栏人数在突增,近期很有可能提高专栏价格(已订阅的不受影响),提前声明,敬请理解! 目录 博客声明 大数据了解博主粉丝 博主的粉丝群体画像 粉丝群体性别比例、年龄分布 粉丝群体学历分布、职业分布、行业分布 国内、国外粉丝群体地域分布 博主的近期访问每日增量、粉丝每日增量 博客声明 因近期博主写专栏的文章越来越多,也越来越精细,逐步优化文章。因此,最近一段时间,订阅博主专栏的人数增长也非常快,并且专栏价

我说我不会算法,阿里把我挂了。

不说了,字节跳动也反手把我挂了。

培训班出来的人后来都怎么样了?(二)

接着上回说,培训班学习生涯结束了。后面每天就是无休止的背面试题,不是没有头脑的背,培训公司还是有方法的,现在回想当时背的面试题好像都用上了,也被问到了。回头找找面试题,当时都是打印下来天天看,天天背。 不理解呢也要背,面试造飞机,上班拧螺丝。班里的同学开始四处投简历面试了,很快就有面试成功的,刚开始一个,然后越来越多。不知道是什么原因,尝到胜利果实的童鞋,不满足于自己通过的公司,嫌薪水要少了,选择...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

工作八年,月薪60K,裸辞两个月,投简历投到怀疑人生!

近日,有网友在某职场社交平台吐槽,自己裸辞两个月了,但是找工作却让自己的心态都要崩溃了,全部无果,不是已查看无回音,就是已查看不符合。 “工作八年,两年一跳,裸辞两个月了,之前月薪60K,最近找工作找的心态崩了!所有招聘工具都用了,全部无果,不是已查看无回音,就是已查看不符合。进头条,滴滴之类的大厂很难吗???!!!投简历投的开始怀疑人生了!希望 可以收到大厂offer” 先来看看网...

97年世界黑客编程大赛冠军作品(大小仅为16KB),惊艳世界的编程巨作

这是世界编程大赛第一名作品(97年Mekka ’97 4K Intro比赛)汇编语言所写。 整个文件只有4095个字节, 大小仅仅为16KB! 不仅实现了3D动画的效果!还有一段震撼人心的背景音乐!!! 内容无法以言语形容,实在太强大! 下面是代码,具体操作看最后! @echo off more +1 %~s0|debug e100 33 f6 bf 0 20 b5 10 f3 a5...

不要再到处使用 === 了

我们知道现在的开发人员都使用 === 来代替 ==,为什么呢?我在网上看到的大多数教程都认为,要预测 JavaScript 强制转换是如何工作这太复杂了,因此建议总是使用===。这些都...

什么是a站、b站、c站、d站、e站、f站、g站、h站、i站、j站、k站、l站、m站、n站?00后的世界我不懂!

A站 AcFun弹幕视频网,简称“A站”,成立于2007年6月,取意于Anime Comic Fun,是中国大陆第一家弹幕视频网站。A站以视频为载体,逐步发展出基于原生内容二次创作的完整生态,拥有高质量互动弹幕,是中国弹幕文化的发源地;拥有大量超粘性的用户群体,产生输出了金坷垃、鬼畜全明星、我的滑板鞋、小苹果等大量网络流行文化,也是中国二次元文化的发源地。 B站 全称“哔哩哔哩(bilibili...

终于,月薪过5万了!

来看几个问题想不想月薪超过5万?想不想进入公司架构组?想不想成为项目组的负责人?想不想成为spring的高手,超越99%的对手?那么本文内容是你必须要掌握的。本文主要详解bean的生命...

MySQL性能优化(五):为什么查询速度这么慢

前期回顾: MySQL性能优化(一):MySQL架构与核心问题 MySQL性能优化(二):选择优化的数据类型 MySQL性能优化(三):深入理解索引的这点事 MySQL性能优化(四):如何高效正确的使用索引 前面章节我们介绍了如何选择优化的数据类型、如何高效的使用索引,这些对于高性能的MySQL来说是必不可少的。但这些还完全不够,还需要合理的设计查询。如果查询写的很糟糕,即使表结构再合理、索引再...

用了这个 IDE 插件,5分钟解决前后端联调!

点击上方蓝色“程序猿DD”,选择“设为星标”回复“资源”获取独家整理的学习资料!作者 |李海庆我是一个 Web 开发前端工程师,受到疫情影响,今天是我在家办公的第78天。开发了两周,...

大厂的 404 页面都长啥样?最后一个笑了...

每天浏览各大网站,难免会碰到404页面啊。你注意过404页面么?猿妹搜罗来了下面这些知名网站的404页面,以供大家欣赏,看看哪个网站更有创意: 正在上传…重新上传取消 腾讯 正在上传…重新上传取消 网易 淘宝 百度 新浪微博 正在上传…重新上传取消 新浪 京东 优酷 腾讯视频 搜...

【高并发】高并发秒杀系统架构解密,不是所有的秒杀都是秒杀!

网上很多的文章和帖子中在介绍秒杀系统时,说是在下单时使用异步削峰来进行一些限流操作,那都是在扯淡! 因为下单操作在整个秒杀系统的流程中属于比较靠后的操作了,限流操作一定要前置处理,在秒杀业务后面的流程中做限流操作是没啥卵用的。

自从喜欢上了B站这12个UP主,我越来越觉得自己是个废柴了!

不怕告诉你,我自从喜欢上了这12个UP主,哔哩哔哩成为了我手机上最耗电的软件,几乎每天都会看,可是吧,看的越多,我就越觉得自己是个废柴,唉,老天不公啊,不信你看看…… 间接性踌躇满志,持续性混吃等死,都是因为你们……但是,自己的学习力在慢慢变强,这是不容忽视的,推荐给你们! 都说B站是个宝,可是有人不会挖啊,没事,今天咱挖好的送你一箩筐,首先啊,我在B站上最喜欢看这个家伙的视频了,为啥 ,咱撇...

代码注释如此沙雕,会玩还是你们程序员!

某站后端代码被“开源”,同时刷遍全网的,还有代码里的那些神注释。 我们这才知道,原来程序员个个都是段子手;这么多年来,我们也走过了他们的无数套路… 首先,产品经理,是永远永远吐槽不完的!网友的评论也非常扎心,说看这些代码就像在阅读程序员的日记,每一页都写满了对产品经理的恨。 然后,也要发出直击灵魂的质问:你是尊贵的付费大会员吗? 这不禁让人想起之前某音乐app的穷逼Vip,果然,穷逼在哪里都是...

Java14 新特性解读

Java14 已于 2020 年 3 月 17 号发布,官方特性解读在这里:https://openjdk.java.net/projects/jdk/14/以下是个人对于特性的中文式...

爬虫(101)爬点重口味的

小弟最近在学校无聊的很哪,浏览网页突然看到一张图片,都快流鼻血。。。然后小弟冥思苦想,得干一点有趣的事情python 爬虫库安装https://s.taobao.com/api?_ks...

疫情后北上广深租房价格跌了吗? | Alfred数据室

去年3月份我们发布了《北上广深租房图鉴》(点击阅读),细数了北上广深租房的各种因素对租房价格的影响。一年过去了,在面临新冠疫情的后续影响、城市尚未完全恢复正常运转、学校还没开学等情况下...

面试官给我挖坑:a[i][j] 和 a[j][i] 有什么区别?

点击上方“朱小厮的博客”,选择“设为星标”后台回复&#34;1024&#34;领取公众号专属资料本文以一个简单的程序开头——数组赋值:int LEN = 10000; int[][] ...

又一起程序员被抓事件

就在昨天互联网又发生一起让人心酸的程序员犯罪事件,著名的百度不限速下载软件 Pandownload PC 版作者被警方抓获。案件大致是这样的:软件的作者不仅非法盗取用户数据,还在QQ群进...

应聘3万的职位,有必要这么刁难我么。。。沙雕。。。

又一次被面试官带到坑里面了。面试官:springmvc用过么?我:用过啊,经常用呢面试官:springmvc中为什么需要用父子容器?我:嗯。。。没听明白你说的什么。面试官:就是contr...

太狠了,疫情期间面试,一个问题砍了我5000!

疫情期间找工作确实有点难度,想拿到满意的薪资,确实要点实力啊!面试官:Spring中的@Value用过么,介绍一下我:@Value可以标注在字段上面,可以将外部配置文件中的数据,比如可以...

Intellij IDEA 美化指南

经常有人问我,你的 IDEA 配色哪里搞的,我会告诉他我自己改的。作为生产力工具,不但要顺手而且更要顺眼。这样才能快乐编码,甚至降低 BUG 率。上次分享了一些 IDEA 有用的插件,反...

【相亲】96年程序员小哥第一次相亲,还没开始就结束了

颜值有点高,条件有点好

太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

一图看完本文 一、 计算机网络体系结构分层 计算机网络体系结构分层 计算机网络体系结构分层 不难看出,TCP/IP 与 OSI 在分层模块上稍有区别。OSI 参考模型注重“通信协议必要的功能是什么”,而 TCP/IP 则更强调“在计算机上实现协议应该开发哪种程序”。 二、 TCP/IP 基础 1. TCP/IP 的具体含义 从字面意义上讲,有人可能会认为...

腾讯面试题: 百度搜索为什么那么快?

我还记得去年面腾讯时,面试官最后一个问题是:百度/google的搜索为什么那么快? 这个问题我懵了,我从来没想过,搜素引擎的原理是什么 然后我回答:百度爬取了各个网站的信息,然后进行排序,当输入关键词的时候进行文档比对……巴拉巴拉 面试官:这不是我想要的答案 我内心 这个问题我一直耿耿于怀,终于今天,我把他写出来,以后再问,我直接把这篇文章甩给他!!! 两个字:倒排,将贯穿整篇文章,也是面试官...

你怎么看欧阳娜娜空降阿里p8?

前段时间 欧阳娜娜空降阿里P8被骂上热搜 有网友调侃道: 名牌大学毕业的研究生 要在阿里没日没夜、加班加点、 全年无休奋斗5年,才可能有机会 和20岁的欧阳娜娜一起喝下午茶…… 本来嘛,大厂✖明星的营销无可厚非 那是什么让撸代码N年的程序员愤愤不平呢? 还不是因为升到P8真的太难了! 这是很多阿里人甚至互联网人遥不可及的梦想! 阿里P8到底有多牛? 根据知乎大V@半佛仙人透露的情况: 阿里P8基本上要求研究生 5 年以上经验,本科 7 年以上经验; P8 一般去小公司就是各种 O,一般公司(非国企、.

程序员因没转发公司内容,被领导扣500,辞职后:加了三行代码

现如今,程序员在一二线城市可谓是非常的抢手,毕竟年薪那么多,一般在工作了几年之后,程序员想要攒到一套房子的首付是不成问题的,所以一些大龄的女青年在相亲的时候要把程序员当成了首选。但表面上看起来风光的程序员,背地里也受了非常多的委屈,最近有一名程序员没有转发公司的内容到朋友圈被领导扣了500块,当他辞职了之后,却非常淡定。 从个这个帖子中,我们可以看出这名程序员的情绪还是比较激动的,因为没有转发公司的内容到朋友圈,就要被罚款500块,这是非常不合理,换做是别人也不肯接受,而且三次没有转发就要被劝退,这是什么

为什么中国80%的程序员面试造大炮,工作扭螺丝,复制粘贴代码一把梭?

面试造大炮,工作扭螺丝,复制粘贴代码一把梭! 最近无聊和同事无意间聊天,开个玩笑,说我们写的什么代码最多,一位同事说我大部分都是复制粘贴,写什么代码?“我们都是代码的搬运工,都是在重复的写着不同的代码”,哈哈,当时还没有反应过来。 后面想想,其实也是事实,这个玩笑差点毁了我的三观,下面我们简单聊聊。 首先从源头来说,程序员使用语言开发,大部分语言都是相同的,只要熟悉的语言的语法知识,就能做出相应的功能,而很多的功能都是相似的,大致相同。 比如:去年开发了一个社交类项目,里面有用户...

Python垃圾回收机制

Python垃圾回收 引用计数器为主 标记清除和分代回收为辅 + 缓存机制 1. 引用计数器 1.1 环状双向链表 refchain 在python程序中创建的任何对象都会放在refchain链表中。 #define PyObject_HEAD PyObject ob_base; #define PyObject_VAR_HEAD PyVarObject ob_base; // 宏定义,包含 上一个、下一个,用于构造双向链表用。(放到refchain链表中时要用到) #define _PyObj

专升本,学历毁了我的一生!

今天给大家带来一段访谈录音。 这位小伙伴是08年,专科毕业,后来,专升本。 但因为本科不是统招,在就业和跳槽中屡屡碰壁,现在从业12年,仍然还在受学历的影响。 希望通过他的经历,能给同是专科学历的同学一些启发。 视频版: 五月二号早上,B站视频版已经发了,大家可以在B站搜索【启舰杂谈】,去看啦。 文章版: 启舰: 今天我们就主要说的下,你的历程吧。主要是想了解一下,学历在整个职业生涯里的影响 嘉宾: 我觉得现在,包括很多人也有这种想法,包括现在的专科生,他们一开始不知道这个东西.

相关热词 c# 按行txt c#怎么扫条形码 c#打包html c# 实现刷新数据 c# 两个自定义控件重叠 c#浮点类型计算 c#.net 中文乱码 c# 时间排序 c# 必备书籍 c#异步网络通信
立即提问