You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在UpdatePanel中使用SqlDataSource.Update()实现无页面刷新更新

解决UpdatePanel中调用SqlDataSource.Update()导致整页刷新的问题

兄弟,你代码里的问题其实一眼就能看出来——就是后台my_Click方法里的那行Response.Redirect(Request.Url.AbsoluteUri);在搞事情!重定向操作会强制触发整页刷新,直接绕过了UpdatePanel的局部刷新机制,难怪你每次操作都会刷新整个页面。

下面给你两步就能搞定的解决方案:

1. 移除导致整页刷新的重定向代码

直接删掉那行Response.Redirect,我们完全不需要用重定向来刷新内容,UpdatePanel本身就能搞定局部更新。

2. 手动触发UpdatePanel局部刷新

因为你的UpdatePanel设置了UpdateMode="Conditional",这种模式下不会自动刷新内容,所以在执行完数据库更新后,需要手动调用UpdatePanel的Update()方法来触发局部内容更新,确保DetailsView能显示最新的数据库数据。

修改后的后台代码如下:

protected void my_Click(object sender, EventArgs e) {
    SqlDataSource1.UpdateParameters["OwnerName"].DefaultValue = "My Name";
    SqlDataSource1.Update();
    // 手动触发UpdatePanel局部刷新,替代重定向
    UpdatePanel1.Update();
}

另外,还可以优化一下前端的jQuery点击事件,防止可能的默认行为干扰:

$('#myId').on('click', function (clickEvent) {
    clickEvent.preventDefault(); // 阻止div点击可能触发的默认行为
    document.getElementById("myBtn").click();
});

这样修改后,点击div触发按钮事件、执行数据库更新后,只会刷新UpdatePanel内部的内容,整个页面不会再重新加载了。

内容的提问来源于stack exchange,提问作者m0lochwalker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:24:46