我试图在jQuery中从asp.net应用程序中读取会话值。我知道这需要一个隐藏字段,一个jQuery ajax的页面方法。我选择使用隐藏元素,这很简单:
<asp:HiddenField runat="server" ID="SessionAdmin" />
然后在我后面的代码中填充它
SessionAdmin.Value = Session("selectedcompanypriviledge").ToString().ToLower()
然后我尝试使用它:
var isAdmin = $("#SessionAdmin").val();
alert($("#SessionAdmin").val());
if (isAdmin != "coadm" && isAdmin != "tcadm" && isAdmin!= "taagt") {
$("#htl_gds").hide();
$("#htl_propcode").hide();
$("#htl_RFPId").hide();
}
else {
//alert(isAdmin);
$("#htl_gds").show();
$("#htl_propcode").show();
$("#htl_RFPId").show();
}
” 它是第一次奇妙地工作,警报给了我我期待的东西和项目显示。当我点击下一个链接(或之后的任何链接)然后我'未定义 isAdmin 的值。知道为什么会这样吗?
答案 0 :(得分:1)
当按ID访问ASP.NET服务器端控件时,您需要记住ASP.NET破坏客户端上呈现的实际ID(通过将其父命名容器名称添加到其中。最好找到该字段的实际ID通过使用一个小内联脚本:
$("#<%= SessionAdmin.ClientID %>").val();
现在您正在从字段中正确访问值,任何其他问题可能与代码隐藏中如何设置该字段的值有关。确保代码在Page_Load
方法中的每个回发上运行(例如)。还要确保在DOM准备就绪后才运行JavaScript代码:
$(function() {
// Your existing JavaScript code here
});