![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.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" οnclick="changestate(this)" value='<%# DataBinder.Eval(Container.DataItem,"OID")%>' checked='<% #DataBinder.Eval(Container.DataItem, "NewUsedMark").ToString()=="1"?true:false %>' /> </ItemTemplate> </asp:TemplateColumn>
HeaderTemplate:可以控制全选
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.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