<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>
aspx页面
HeaderTemplate:可以控制全选
function changestate(obj) {
var strShowId = obj.id.substr(, (obj.id).length - ) + "cb_Show";
if (obj.checked) {
document.getElementById(strShowId).checked = true;
}
}
JS
changestate方法:
主要是因为同一行两列勾选框是ID默认前面会相同,所以用截取的方式可以得到同一行,另一列的勾选框ID