用JavaScript执行PostBack

By | November 20, 2006

早上实现了在子页面更新数据以后,父页面刷新树的功能

思路:
  • 父页面有个隐藏的html button作为proxy,子页面保存完数据以后,用js调用父页面的html button的触发函数click();
  • 父页面有个asp.net的link button控件,text="",等于也是隐藏的,它负责调用后台cs代码里的负责刷新树的方法;
  • 父页面的html button onclick的时候,__doPostBack(‘DoRefresh’,”);
代码:

父页面apsx:

<input type="button" id="DoRefreshProxy" value="DO" onclick="__doPostBack('DoRefresh','');" style="display:none;" />
<asp:linkbutton id="DoRefresh" runat="server" onclick="DoRefresh_Click"  CausesValidation=False/>  
父页面cs:
protected void DoRefresh_Click(object sender, EventArgs e)
{
    this.BindTree(this.tvBuilding.SelectedNodeIndex,1);
}  

子页面cs:
Page.RegisterStartupScript("pb","<script> window.opener.document.getElementById( 'DoRefreshProxy' ).click();</script>");