2009-11-30 68 views
0

我得到upl.aspx和datalist.aspx如何會話值傳遞給外部JS文件

我有在upl.aspx頁的iframe,它加載datalist.aspx

現在我創建一個兩頁在單選按鈕點擊會話whiich是數據列表 我想通過這個會話值外部JS文件中,這樣 現在我有uploo.aspx頁面功能秀枝(),它可以顯示出它的價值

如何做到這一點? ?

這裏是我的up1.aspx

<a onclick="Hidee();" style="cursor: pointer">close</a></div> 

<iframe id="frame1" frameborder="0" name="frame1" src="datalist.aspx"></iframe> 

這是datalist.aspx在我有我的DataList

<td align="center" > 


       <asp:RadioButton ID="rdb" runat="server"  CssClass="radio" AutoPostBack="True" OnCheckedChanged="rdb_click" /> 


       <asp:HiddenField ID="HiddenField1" runat="server" Value = '<%#Eval("FileName")%>' /> 
       </td> 
       </tr> 

這裏的代碼是代碼隱藏datalist.cs

public void rdb_click(object sender, EventArgs e) 
    { 
     string value = ""; 
     for (int i = 0; i < DataList1.Items.Count; i++) 
     { 
      RadioButton rdb1; 
      rdb1 = (RadioButton)DataList1.Items[i].FindControl("rdb"); 
      if (rdb1 != null) 
      { 
       if (rdb1.Checked) 
       { 
        HiddenField hf = (HiddenField)DataList1.Items[i].FindControl("HiddenField1"); 
        value = hf.Value.ToString(); 
       } 
      } 
     } 
     Session["Background1"] = value; 
     Label2.Text = value; 

    } 

和在我的外部JavaScript我有功能Hidee();

function Hidee() 
{ 
var div2 = document.getElementById("divframe1"); 
div2.style.display = "none"; 
var div3 = document.getElementById("aa"); 
div3.style.display = "block"; 
var session ='<%= Session["Background1"] %>'; 
alert("you have selected" + session); 
} 

回答

3

如果upl.aspxdatalist.aspx是兩個不同的ASP.NET應用程序(託管在IIS中不同的應用程序池)的一部分,它不可能在它們之間共享會話。可能的解決方法是將值作爲url參數傳遞。


UPDATE:

不能在外部JavaScript文件中使用服務器端的表現。你可以宣佈你的aspx頁面的全局變量,將舉行,這將在你的JavaScript文件中使用的值:

在aspx頁面:

<script type="text/javascript"> 
    var background = '<%= Session["Background1"] %>'; 
</script> 

,然後你可以在Hidee使用background變量函數在你的JavaScript文件中。

+0

這兩頁是同一網站的一部分 – Mishigen 2009-11-30 07:25:10

+0

沒關係。你在頁面之間失去狀態。 – monksy 2009-11-30 07:36:07

+0

@steven是不是整個會話點跟蹤頁面之間的狀態? – 2009-11-30 07:50:22

相關問題