Use __doPostBack() As A Bridge

王朝c#·作者佚名  2006-12-17
宽屏版  字体:  |  |  | 超大  

function UpdateQuantityDialogOpen() {

var retval="";

retval=window.showModalDialog ('updatequantity.aspx','','dialogWidth:400px;dialogHeight:175px;status:no;dialogHide:true;help:no;scroll:no');

if(retval!="" && retval!=null) {

window.execScript("__doPostBack('UpdateQuantity', '" + retval + "')","JavaScript");

}

}

看起来相当的平常, 除了 window.execScript(..)。 它用于调用 __doPostBack() javascript 方法。 只有当你使用特定的服务器控件的时候,这个方法将会出现在你的 JS 中, 例如: LinkButton。

function __doPostBack(eventTarget, eventArgument) 这个方法接收两个参数

在 modal 窗口中,给一个Button增加Attribute

Me.Button1.Attributes.Add("OnClick", "ClosePopUp('txtQuantityOrder');")

被调用的JavaScript方法为:

function ClosePopUp(returnVal) {

//设置返回值

window.returnValue=document.getElementById(returnVal).value;

//关闭

window.close();

}

当我们关闭modal 窗口时,将返回一个值。

在父窗体下增加如下代码:

If Not Page.IsPostBack Then

Response.Write("do")

Else

If Request.Form("__EVENTTARGET") = "UpdateQuantity" Then

Response.Write("返回值为:" & Request.Form("__EVENTARGUMENT"))

End If

End If

通过Request.Form() 可以获取传递到__doPostBack() 方法的值,然后就可以将这个值传递给任意的asp.net方法。This

总结:

我们完成了两件事情:

1. 重新刷新父窗体。

2. 在JavaScript 与 asp.net之间建立了一个桥梁。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有