我有一个父表单,使用此javascript代码调用子表单来传递json对象。
var w = window.open("childForm.aspx");
w.myJsonObj = myJSONObject;
如何在childForm.aspx onload事件中访问此变量,以便反序列化?
答案 0 :(得分:0)
Javascript变量纯粹是客户端,因此它们无法访问服务器端(来自代码隐藏)。要在服务器端访问它,您必须将该值存储在服务器可以访问它的位置。
有很多选项,但这里有一个选项:创建一个隐藏字段来存储值,为该字段提供一个id和runat="server"
属性(因此可以从代码访问它 - 后面),并更新你的JavaScript以填充它。
隐藏字段:
<asp:HiddenField id="SomeUniqueID" runat="server"/>
Javascript(不带JQuery):
document.getElementById('<%= SomeUniqueID.ClientID %>').setAttribute("value", myJSONObject);
Javascript(使用JQuery):
$('#<%= SomeUniqueID.ClientID %>').val(myJSONObject);