在 ul-li 列表中动态加载 Customer_Name
Dynamically Load Customer_Name in a ul-li list
我有一个页面,用户可以在该页面上登录并重定向到 Home
页面,其中我有一个 ul's
列表在顶部的一行中,就像网站的一般结构一样。我使用 <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。 : 会话被传递到主页是空的。我在登录页面上放置了断点,那里的客户对象包含所有详细信息,但主页却没有!
代替 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;
}
这应该没问题!
我有一个页面,用户可以在该页面上登录并重定向到 Home
页面,其中我有一个 ul's
列表在顶部的一行中,就像网站的一般结构一样。我使用 <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。 : 会话被传递到主页是空的。我在登录页面上放置了断点,那里的客户对象包含所有详细信息,但主页却没有!
代替 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;
}
这应该没问题!