![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
<asp:TemplateColumn > <HeaderTemplate> 是否显示 <asp:CheckBox ID="chk_Show" style="cursor:hand" runat="server" oncheckedchanged="chk_Show_CheckedChanged" AutoPostBack="True" /> </HeaderTemplate> <ItemTemplate> <input type="checkbox" runat="server" name="cb_Show" id="cb_Show" value='<%# DataBinder.Eval(Container.DataItem,"OID")%>' checked='<% #DataBinder.Eval(Container.DataItem, "NewShowMark").ToString()=="1"?true:false %>' /> </ItemTemplate> </asp:TemplateColumn> <asp:TemplateColumn > <HeaderTemplate> 是否可用<asp:CheckBox ID="chk_Used" style="cursor:hand" runat="server" oncheckedchanged="chk_Used_CheckedChanged" AutoPostBack="True" /> </HeaderTemplate> <ItemTemplate> <input type="checkbox" runat="server" name="cb_Used" id="cb_Used" onclick="changestate(this)" value='<%# DataBinder.Eval(Container.DataItem,"OID")%>' checked='<% #DataBinder.Eval(Container.DataItem, "NewUsedMark").ToString()=="1"?true:false %>' /> </ItemTemplate> </asp:TemplateColumn>
HeaderTemplate:可以控制全选
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
function changestate(obj) { var strShowId = obj.id.substr(0, (obj.id).length - 7) + "cb_Show"; if (obj.checked) { document.getElementById(strShowId).checked = true; } }
changestate方法:
主要是因为同一行两列勾选框是ID默认前面会相同,所以用截取的方式可以得到同一行,另一列的勾选框ID