2015-08-26 58 views
0

在这里我打开一个新的窗口,然后我会做一些操作,我想从孩子的形式发回的数据主要在asp.net页面调用如何将数据发送回用javascript

主要形式有:

var sURL = 'AnodizingLoadingPopupHelp.aspx' + 
         '?ProfitCenterCode=' + strProfitCenterCode + 
          '&LineCode=' + MachineID; 

       var sFeatures1 = "dialogHeight: 240px;dialogWidth:280px;dialogLeft:40px;dialogTop:100px"; 

       window.showModalDialog(sURL, "Lookup", sFeatures1, true); 

       var Receivedata = '<%= Session["data"] %>'; 
       alert(Receivedata); 

子窗体:

var senddata = data; 
       '<%Session["data"] = "' + senddata + '"; %>'; 
       alert(senddata); 
       window.close(); 

这里我使用的会议,但我没能获得在会话值,它说:“不确定”

+0

可以使用HiddenValue,像'的document.getElementById( “<%= hiddenvalue1.Value%>”)value' – CodingDefined

+0

林不接受任何价值形成子窗体@CodingDefined –

+0

@。 King_Fisher可能是因为该方法仅在控件可访问控件上的ASP.Net ala'runat = server'时才有效。 –

回答

0

传统上,使用Query String来传递这样的值。

protected void Page_Load(object sender, EventArgs e) 
{ 
    string v = Request.QueryString["param"]; 
    if (v != null) 
    { 
     Response.Write("param is "); 
     Response.Write(v); 
    } 
} 

但在情况下,查询字符串不会做,如与其他一些应用程序接口,它是最好使用设置为隐藏一个HTML控件。如果你

function getElement (id) { 
    if (document.getElementById) { 
    return document.getElementById(id); 
    } 
    else if (document.all) { 
    return window.document.all[id]; 
    } 
    else if (document.layers) { 
    return window.document.layers[id]; 
    } 
} 

上的控制, 有runat=server而得到这样的控制:不要忘了考虑cross browser issues

myValue = getElement ("#myControlID").value; 

否则,如果你没有使用您的控件上的runat=server属性,那么你可以得到它在JavaScript这样的:

myValue= getElement('<%= HiddenStatusFlag.ClientID%>').value; 

(在这里看到:Get Value of Hidden Field in Client Side

+0

我不能使用Querystring,我不想刷新邮件表单。 –

+0

@King_Fisher你看过'UpdatePanel'吗? –

+0

我不能使用,因为即时通讯调用该子窗体形式的中间我的主要形式,如果我刷新页面,再次我必须填写主窗体中的所有控件 –

相关问题