2016-04-12 5 views
0

Bir json nesnesini iletmek için bu javascript kodunu kullanarak bir alt form çağrısı yapan bir ana formum var.erişim javascript window.myvariable alt formun asıl kodunun içinde

 var w = window.open("childForm.aspx"); 
     w.myJsonObj = myJSONObject; 

ı serisini şekilde nasıl childForm.aspx Onload olay bu değişkeni erişebilir?

+0

sayfanın post it gerekecek ya söz gelimi, ya da belki window.open() çağrısı, dizilenmiş ve URL kodlanmış bir querystring parametresi olarak ekleyebilirsiniz. – ManoDestra

cevap

0

Javascript değişkenleri yalnızca istemci tarafıdır, bu nedenle erişilebilir sunucu tarafı yoktur (kod arkasından). Sunucu tarafına erişmek için, sunucunun erişebileceği bir yerde bu değeri saklamanız gerekir.

Pek çok seçenek var, ancak burada bir tane var: değeri saklamak için bir gizli alan oluşturun, bu alana bir kimlik ve runat="server" özniteliğini verin (böylece kod arkasından erişilebilir) ve doldurmak için javascript'inizi güncelleyin.

Gizli alanı: (JQuery olmadan)

<asp:HiddenField id="SomeUniqueID" runat="server"/> 

JavaScript: (JQuery ile)

document.getElementById('<%= SomeUniqueID.ClientID %>').setAttribute("value", myJSONObject); 

JavaScript:

$('#<%= SomeUniqueID.ClientID %>').val(myJSONObject); 
+0

Tamam, Bu değeri yeni bir sayfaya iletmek istiyorsam, verileri açan ve işleyen yeni bir sayfa bunu nasıl yapmanın en iyi yolu olurdu? Url parametresini kullanmak istemiyorum, çünkü bu büyük bir serileştirilmiş özel nesnedir. Teşekkür ederim. –

+0

Sorgu dizesinde iletmek istemiyorsanız, bu değeri oturumda saklayabilirsiniz. Yani, değeri alan sayfadaki kodunuzda, aşağıdaki gibi bir oturuma kaydedin: 'Oturum [" someVariableName "] = SomeUniqueID.Value;'. Daha sonra bu değeri kullanması gereken sayfada, oturumun dışında geri oku: 'var jsonString = Session [" someVariableName "]; – TheRotag