__doPostBack重新加载整个页面而不仅仅是UpdatePanel

时间:2011-02-10 16:10:46

标签: asp.net updatepanel postback

在我的javascript中,我有以下一行:

__doPostBack('MyPanel', MyParam);

在我的代码中,我使用MyParam查询数据库并将结果绑定到MyPanel更新面板内的gridview。 updatepanel的updatemode设置为条件,并且在我的代码的回发部分MyPanel.Update();

当我进行排序和分页时,updatepanel正常工作;只有面板刷新。但是,当我使用我的javascript触发updatepanel时,我看到firebug中的流量显示整个页面正在刷新。

解决方案是什么?

感谢。

1 个答案:

答案 0 :(得分:16)

我的更新:您的更新面板位于命名容器内,因此客户端的ID与服务器端ID略有不同。这意味着您将错误的__EVENTTARGET参数传递给客户端side __doPostBack函数,并且您的部分回发变满(意味着不是异步)。

将您的客户端代码更改为:

__doPostBack('<%= MyPanel.ClientID %>', MyParam);

应该解决问题。

顺便说一句,您可以从服务器端获取第二个(代码中为MyParam)参数:

var arg = Request.Params.Get("__EVENTARGUMENT");