c# - 通过 JQuery 检查复选框时,复选框 OnCheckedChanged 不会触发

标签 c# javascript jquery asp.net checkbox

我使用此代码能够检查 gridview 行选择上正在运行的复选框。但是,除非我单击实际的复选框,否则后面的代码不会运行。有什么想法吗?

ASPX 代码:

<asp:GridView runat="server" ID="gvReconciledGroups" AutoGenerateColumns="false" EmptyDataText="No Reconciled Items to Batch" DataKeyNames="GroupID">
    <Columns>
        <asp:TemplateField>
            <ItemTemplate>
                <asp:CheckBox runat="server" ID="cbFinalise" AutoPostBack="true" OnCheckedChanged="cbFinalise_OnCheckedChanged" ClientIDMode="Static" />
            </ItemTemplate>
        </asp:TemplateField>
        <asp:BoundField HeaderText="GroupID" HeaderStyle-HorizontalAlign="Left" ItemStyle-HorizontalAlign="Left" DataField="GroupID" />
        <asp:BoundField HeaderText="Date" HeaderStyle-HorizontalAlign="Left" ItemStyle-HorizontalAlign="Left" DataField="Date" DataFormatString="{0:dd/MM/yyyy}" ItemStyle-Width="100px" />
        <asp:BoundField HeaderText="Cashier" HeaderStyle-HorizontalAlign="Left" ItemStyle-HorizontalAlign="Left" DataField="Cashier" ItemStyle-Width="100px" />

脚本:

<script type="text/javascript">
    $(function () {
        $('tr.gridview_row,tr.gridview_alternatingRow').click(function () {
            var checked = $(this).find('input[id*=cbFinalise]').prop('checked');
            $(this).find('input[id*=cbFinalise]').prop('checked', !checked);
        });
    });
</script>

背后代码:

public void cbFinalise_OnCheckedChanged(Object sender, EventArgs e)
{
    //Calculations
}

最佳答案

jQuery 完全是客户端的。 OnCheckedChanged 仅在由于单击单选 input 而发生回发后在服务器端触发。试试这个:

$('tr.gridview_row,tr.gridview_alternatingRow').click(function () {
    $(this).find('input[id*=cbFinalise]').click(); // this should force a postback
});

请注意,手动更改控件的 checked 属性是多余的,因为无论如何您都将刷新页面,并且控件的状态将由 ASP.Net 在重新呈现页面时设置.

关于c# - 通过 JQuery 检查复选框时,复选框 OnCheckedChanged 不会触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19636392/

相关文章:

javascript - 防止在 iOS 13/Mobile Safari 上点击并按住文本选择

javascript - onclick 单选按钮淡出主体和重定向

javascript - 有没有办法可以为 AJAX 加载的图像添加悬停效果?

jquery - 单击某个链接时,如何让用户弹出到页面上的特定位置

c# - 系统.Data.SqlClient.SqlException : login failed for user '......'

javascript - 在Windows上卡住的node.js上提取zip文件

c# - 如何使用 C#.net 在每隔几秒/分钟内 ping 一次域?

php - 添加数据库目录路径

c# - 将视频剪辑淡化为黑色

c# - 在 Windows Phone 8 上拍摄肖像视频