GridView的CheckBox列选择及多参数传递三步搞定 |
1、GridView的列设置 复制代码 代码如下: <asp:TemplateField HeaderStyle-CssClass="check" ItemStyle-CssClass="check"> <HeaderTemplate> <input type="checkbox" onclick="selectAll(this)" /> 全选 </HeaderTemplate> <ItemTemplate> <input name="chkIDCardNum" type="checkbox" value="<%# Eval("PID") %>$<%# Eval("IdentityCard")%>$<%# Eval("PName")%>" <%# "1" == Eval("IsCouldDelete").ToString()?"disabled=disabled":""%> /> </ItemTemplate> </asp:TemplateField> <asp:TemplateField Visible="true" HeaderText="删除"> <ItemTemplate> <asp:LinkButton id="lbtnDelete" CommandName="lbtnDelete" runat="server" Text="删除档案" CommandArgument=<%# Eval("PID") +"$"+ Eval("IdentityCard")%> OnClientClick="return confirm(确认删除?);" Visible=<%# Eval("Termination").ToString()=="1" ? false : true %> /> </ItemTemplate> </asp:TemplateField> 2、全选的Js处理 复制代码 代码如下: function selectAll(myself) { var oState = myself.checked; var checkboxes = document.getElementsByName("chkIDCardNum"); //获取input组 for (var i = 0; i < checkboxes.length; i++) { if (checkboxes[i].disabled) { } else { checkboxes[i].checked = oState; //选择值 } } } 3、后台对所选值的获取 复制代码 代码如下: var selectedIds = Request.Params["chkIDCardNum"].Split(,); if (selectedIds.Length == 0) return; //int[] msgIds = Array.ConvertAll<string, int>(selectedIds, s => int.Parse(s)); int[] ids = selectedIds.Select(t => int.Parse(t.Split($)[0])).ToArray(); string[] cards = selectedIds.Select(t => t.Split($)[1]).ToArray(); |