[英]how to pass session value to external js file
我有两页upl.aspx和datalist.aspx
我在加载datalist.aspx的upl.aspx页中有iframe
现在我在单选按钮上创建一个会话,单击哪个在数据列表中,我想将此会话值传递给外部js文件,以便现在我在uploo.aspx页面中有一个函数Hidee()可以显示其值
这个怎么做??
这是我的up1.aspx代码
<a onclick="Hidee();" style="cursor: pointer">close</a></div>
<iframe id="frame1" frameborder="0" name="frame1" src="datalist.aspx"></iframe>
这是从datalist.aspx,其中我有我的数据列表
<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);
}
如果upl.aspx
和datalist.aspx
是两个不同的ASP.NET应用程序(托管在IIS中不同的应用程序池)的一部分,它不可能在它们之间共享会话。 可能的解决方法是将值作为url参数传递。
更新:
您不能在外部javascript文件中使用服务器端表达式。 您可以在aspx页面中声明一个全局变量,该变量将包含将在javascript文件中使用的值:
在aspx页面中:
<script type="text/javascript">
var background = '<%= Session["Background1"] %>';
</script>
然后可以在javascript文件内的Hidee
函数中使用background
变量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.