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

fre*_*hie 4 asp.net postback updatepanel

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

__doPostBack('MyPanel', MyParam);
Run Code Online (Sandbox Code Playgroud)

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

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

解决方案是什么?

谢谢.

Ale*_*lex 16

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

所以将客户端代码更改为:

__doPostBack('<%= MyPanel.ClientID %>', MyParam);
Run Code Online (Sandbox Code Playgroud)

应该解决问题.

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

var arg = Request.Params.Get("__EVENTARGUMENT");
Run Code Online (Sandbox Code Playgroud)