__doPostBack问题本帖最后由 kll329582600 于 2013-10-17 11:32:52 编辑scriptfunction test(name){var
__doPostBack问题
本帖最后由 kll329582600 于 2013-10-17 11:32:52 编辑
<script>
function test(name){
var lbtnSupervisor = document.getElementById("ctl00_Body_lbtnQuery_LinkButtonAction");
eval(lbtnSupervisor.href);
我如何在父窗口的后台得到这个name。
}
</script>
<asp:LinkButton ID="lbtn" runat="server" Text="lbtn"></asp:LinkButton>
用这种方法,弹出一个页面,在弹出的页面中我想返回一个值到父窗体。如何在父窗体的后台得到弹出窗口返回来的值。
弹出窗口:
function ReturnValue() {
window.opener.test('abc');
window.close();
}
[解决办法]//父窗口方法
function GetValueFromChild(p) {
alert(p);
}
//子窗口方法
function btnClick() {
window.opener.GetValueFromChild("Hello");
window.close();
return false;
}
[解决办法]你本身的代码不对么,我这能传值啊
[解决办法]你在父页面使用window.showModalDialog打开子页面,在子页面最后加上window.returnValue = "name的值在这里返回";这样在父页面就能拿到name值了!具体过程如下:
1,父页面
var dialog = window.showModalDialog("child.aspx", window, "dialogWidth:0px; dialogHeight:0px; center:yes; help:no; resizable:no; status:no;");
var name=dialog;
window.location.href = window.location.href;
window.location.reload;
2,子页面
ScriptManager.RegisterStartupScript(this, this.GetType(), "auditdel", "alert('流程撤销成功!');window.close();window.returnValue = '这是要返回的name值,也可以是前台去做!';", true);
[解决办法]是不是因为你不是用window.open()方法打开的子窗口
//我的方法
<asp:Button runat="server" ID="btn" OnClientClick="btnClick();" Text="Open" />
function btnClick() {
window.open('WebForm1.aspx');
return false;
}
[解决办法]
//页面代码,一定要定义name属性
<input type="hidden" ID="lblInfo" name="lblInfo" />
//js代码
function GetValueFromChild(p) {
var lbl = document.getElementById('lblInfo');
lbl.value = p;
document.forms[0].submit();
}
//后台代码
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//第一次请求页面
}
else
{
if (Request["lblInfo"] != null && !string.IsNullOrEmpty(Request["lblInfo"]))
{
string str = Request["lblInfo"].ToString();
Response.Write("<script>alert('" + str + "')</script>");
}
}
}
[解决办法]你用个隐藏的控件来接这个返回值,再在后台取这个控件的值 比如下面
document.getElementById("label1" ).value = name;
[解决办法]var lbl = document.getElementById('lblInfo');
lbl.value = p;
document.forms[0].submit();
把这三行放到你的test方法里不就行了,你要不想立刻提交就把document.forms[0].submit();删了,取值还是像我刚才那样,只能放到form_load方法里通过Request["lblInfo"]的值,如果你非要在特定的事件处理函数中处理这个值,可以在form_load里先取出来存到一个私有变量中,再到事件处理函数中处理这个变量
[解决办法]窗体间传值,不会找度娘
[解决办法]parent.test(name);
[解决办法]什么意思,Page_Load()不就是事件处理函数么