GridView的CheckBox列选择及多参数传递三步搞定

时间:2022-09-01 20:38:52

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();