对话框参数在服务器端

本文关键字:服务器端 参数 对话框 | 更新日期: 2023-09-27 17:51:09

我将showmodaldailoge()函数中父窗口的引用发送为

window.showmodaldialog("mypage.aspx", window, winsizeattributes)

,因为我不想使用查询字符串或会话变量。现在我可以访问mypage.aspx客户端的父窗口变量了。

对话框参数在服务器端

如何访问 mypage.aspxie在Page_Load()服务器端的父窗口变量?
  • 用runat="server"创建一个隐藏的客户端html文本框还有一个id属性

  • 从客户端jquery函数插入一个值到隐藏框

  • 使用。findcontrol ("yourId")方法在回发时读取服务器端值。

    注意:使用一个新的隐藏字段为每个变量您希望召回。

只要你的模态容器和你的隐藏字段存在于同一个页面上,你就可以从模态对话框上下文中读取这些值。

既然我不想使用查询字符串或会话变量,我怎么能访问mypage服务器端的父窗口变量。阿斯匹克。employee () ?

如果不使用查询字符串或会话变量,则无法做到这一点。可能的选择是在第二个参数传递所需的变量到你的模态窗口(你有window传递到那里,据我所知,为了获得对父窗口的访问,但你可以避免-有方法window.opener应该指向客户端父窗口),采取这些值,并使用JS表单提交它们。一旦完成,您将能够在mypage.aspx后面的代码中执行类似Request.Form["some_key"]的操作。但这实际上与查询参数相同,但更复杂。

这里的问题是,模态窗口将产生另一个请求的asp.net,不知道父窗口,因为web的无状态性质。基本上,父窗口的变量从服务器上的内存中删除,只是父窗口请求完成。看看asp.net页面生命周期(例如这里)。在不同请求之间共享数据的常用方法是表单、查询参数、会话和cookie。