我有一个页面,用户登录并重定向到Home
页面,其中我在网站的一般结构中连续排在ul's
的ist。我正在使用<asp:PlaceHolder.../>
根据用户是首次使用用户还是登录用户隐藏<li>
。
守则如下:
<ul>
<asp:PlaceHolder ID="plcHldrReg" runat="server">
<li class="has-submenu"><a href="#">Home</a>
<ul class="sub-menu">
<li><a href="CustomerHome.aspx" style="font-size: medium">Home</a></li>
<li><a href="CustomerLogin.aspx" style="font-size: medium">Login or Sign Up?</a></li>
<li><a href="GuestUser.aspx" style="font-size: medium">Sign In as Guest-User</a></li>
</ul>
</li>
</asp:PlaceHolder>
<asp:PlaceHolder ID="plcHldrLogin" runat="server">
<li class="has-submenu"><a href="#">DynamicUserName</a>
<ul class="sub-menu">
<li><a href="CustomerProfile.aspx" style="font-size: medium">Profile</a></li>
<li><a href="CustomerHome.aspx" style="font-size: medium">Logout</a></li>
</ul>
</li>
</asp:PlaceHolder>
</ul>
母版页中的代码:
protected void Page_Load(object sender, EventArgs e)
{
if (Session["existing_user"] != null)
{
plcHldrReg.Visible = false;
plcHldrLogin.Visible = true;
//Edit :
Customer loggedInCustomer = (Customer)Session["existing_customer"];
lblCustomerName.Text = loggedInCustomer.Name;
}
}
我希望客户的名称应该在DynamicUserName
动态显示。这可能有<asp:Label.../>
我可以动态分配吗?
P.S:我尝试使用<asp:Label.../>
控件,但我不知道为什么完整的<ul-li>
列表不可见。
P.S。 :会话被空传递到主页..我在登录页面上放了断点,那里的Customer对象包含所有细节,不知怎的主页不是!
答案 0 :(得分:0)
代替DynamicUserName
放置<asp:label />
并默认将其Text
属性保留为Text=""
。
现在您可以根据已登录的人动态设置c#代码的值。
<li class="has-submenu"><a href="#"><asp:Label ID="DynamicUserName" runat="server" Text=""></asp:Label></a>
并且您可能将UserID
存储在Session
或QueryString
中,因此您可以通过c#触发查询UserID
并获取用户所有信息。
现在从c#你需要做..
if (Session["existing_user"] != null)
{
plcHldrReg.Visible = false;
//fire query and get users details
//i suppose you get an Object of 'UserDetails' with one field `UserName` in it
plcHldrLogin.Visible = true;
DynamicUserName.Text=UserDetails.UserName;
}
这应该可以正常工作!