我有一个带有gridview的简单表单,其中一个字段是templateField
<asp:TemplateField HeaderText="State" SortExpression="IsActive">
<ItemTemplate>
<asp:CheckBox runat="server" ClientIDMode="AutoID" ID="IsActive" AutoPostBack="true" OnCheckedChanged="IsActive_CheckedChanged" Enabled="true"/>
</ItemTemplate>
</asp:TemplateField>
我将ClientIDMode设置为AutoID,以使每个checkboxex都是唯一的。 我找到了一个解决方案,使我的Checkbox看起来像一个使用bootstrap的开关 http://www.bootstrap-switch.org/
所以我也有一个js方法来启用bootstrap
function bootstrapSwitch() {
var grid = document.getElementById("GridViewFeatures");
var inputs = grid.getElementsByTagName("input");
for (var i = 0; i < inputs.length; i++) {
var str1 = "#";
var str2 = inputs[i].id;
var res = str1.concat(str2);
$(res).bootstrapSwitch();
}
所以我可以看到一个很好的自举开关控制。 但是,当我按下Checkbox OnCheckedChanged事件时不会触发。 我在处理程序中放置了一个断点,并注意到,当我按下复选框然后按另一个简单的按钮
<asp:Button ID="ButtonRefresh" runat="server" Text="Refresh" OnClick="ButtonRefresh_Click" />
我进入OnCheckedChanged,所以它只在另一个控件执行回发时触发。 请告诉我,如何修复它以便能够同时使用引导样式和逻辑代码。