【问题标题】:HtmlInputCheckbox onselect event not getting invoked未调用 HtmlInputCheckbox onselect 事件
【发布时间】:2014-01-27 10:57:19
【问题描述】:

我有一个 web 应用程序,它有一个带有第一列作为复选框的 gridview。

<asp:TemplateField HeaderText="Select" >
    <HeaderTemplate >
        <asp:CheckBox ID="chkboxSelectAll" runat="server" AutoPostBack="true" />
    </HeaderTemplate>
    <ItemTemplate>
        <input id="chkSelect" name="chkboxSelect" runat="server" type="checkbox" onclick='CheckedChanged'/>          
     </ItemTemplate>
</asp:TemplateField>

还有一个用于 input(checkbox) 的 onselect 事件,在后面的代码中我将根据复选框是否被选中来突出显示该行。

我的问题是当我检查输入复选框时,onselect 事件没有被调用。谁能知道是什么导致了这个问题?

提前致谢。

【问题讨论】:

    标签: c# asp.net input checkbox onselect


    【解决方案1】:

    使用 asp:checkbox 和 autopostback=true 代替 HTML 控件

    【讨论】:

    • ItemTemplate 有 html 类型的复选框
    • 使用 asp:checkbox 时遇到一个奇怪的问题 stackoverflow.com/questions/20801455/…
    • 然后试试这个链接查看 IE 错误forums.asp.net/t/…
    • 我以前试过。当我尝试相同时,复选框值不会保留。
    • 显然复选框值不会持续存在..您必须正确处理回发并在每次回发时重新绑定复选框
    【解决方案2】:

    使用此代码。 将 html 输入替换为 asp:checkbox 在 itemtemplate 上并分配新事件 OnCheckedChanged 而不是 onclick 事件

    <asp:TemplateField HeaderText="Select" >
    <HeaderTemplate >
             <asp:CheckBox ID="chkboxSelectAll" runat="server" AutoPostBack="true" />
     </HeaderTemplate>
     <ItemTemplate>
             <asp:CheckBox ID="chkSelect" runat="server" AutoPostBack="true" OnCheckedChanged='CheckedChanged'/>
     </ItemTemplate>
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-06
    • 1970-01-01
    • 1970-01-01
    • 2011-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多