gpt4 book ai didi

c# - 使用 javascript 防止 gridview 异步回发

转载 作者:行者123 更新时间:2023-12-02 18:29:02 25 4
gpt4 key购买 nike

我在更新面板中有一个 GridView , GridView 的第一列中有一个复选框。当我第一次创建它时,它运行得很好。该复选框设置为 AutoPostBack 并导致异步回发,我可以在其中处理数据并刷新 gridview,而不影响页面的其余部分。

但是,我需要在页面、客户端测试特定条件,并向用户显示一个确认框,提示“此人未为此设置。”您确定要继续吗?'

最初,我通过在 gridview 的 RowDataBound 事件中放置一些类似这样的代码来做到这一点;

CheckBox cb = (CheckBox)e.Row.FindControl("myCheckBox");
cb.Attributes.Add("onclick", "return check('" + ContactName + "');");

并且有一个 javascript 函数:

function check(ContactName)
{
if (document.getElementById('Listed') == false)
{
if (confirm('This person is not listed, are you sure you want to continue?'))
{
return true;
}
return false;
}
}

请忽略上面代码中的拼写错误,如果是凭内存输入的。问题是,它有效。如果我的局部变量 Listed 为 false,它会弹出确认框。

问题是,如果您在确认框中选择“确定”,则复选框生成的回发(应该是异步的,因为它位于 ChildrenAsTriggers = true 的更新面板内)将被取消。我必须在 javascript 确认后调用 __doPostback 才能发生回发。但是,我得到的是完整的回发,而不是我想要的异步回发。

所以,我的问题是,如何防止带有 javascript 确认的复选框的异步回发,这样,如果您在 javascript 确认中选择“确定”,就会发生异步回发。

正如我所说,目前,我可以让它工作的唯一方法是在用户单击“确定”后进行完整的回发。

最佳答案

此位置的链接讨论了如何通过 JavaScript 取消异步回发:

http://www.ajaxtutorials.com/ajax-tutorials/cancel-asynchronous-postback-in-c/

重要的部分在这里:

<script type="text/javascript">
var instance = Sys.WebForms.PageRequestManager.getInstance();
instance.add_initializeRequest(instance_initializeRequest);

function instance_initializeRequest(sender, args) {
if (args.get_postBackElement().id == 'btn_Cancel') {
instance.abortPostBack();
alert('Postback has been cancelled. Time will not be updated.');
}
}
</script>

关于c# - 使用 javascript 防止 gridview 异步回发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18020346/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com