GridView's CheckBox column selection and multi parameter transfer are done in three steps

  • 2020-05-24 05:21:05
  • OfStack

1. Column Settings for GridView
 
<asp:TemplateField HeaderStyle-CssClass="check" ItemStyle-CssClass="check"> 
<HeaderTemplate> 
<input type="checkbox" onclick="selectAll(this)" /> 
 Future generations  
</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=" delete "> 
<ItemTemplate> 
<asp:LinkButton id="lbtnDelete" CommandName="lbtnDelete" runat="server" Text=" Delete the file " 
CommandArgument='<%# Eval("PID") +"$"+ Eval("IdentityCard")%>' 
OnClientClick="return confirm(' Confirm deletion? ');" 
Visible='<%# Eval("Termination").ToString()=="1" ? false : true %>' /> 
</ItemTemplate> 
</asp:TemplateField> 

2. All selected Js processing
 
function selectAll(myself) { 
var oState = myself.checked; 
var checkboxes = document.getElementsByName("chkIDCardNum"); // To obtain input group  
for (var i = 0; i < checkboxes.length; i++) { 
if (checkboxes[i].disabled) { 
} else { 
checkboxes[i].checked = oState; // Select value  
} 
} 
} 

3. Background acquisition of selected values
 
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(); 

Related articles: