在 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 存储在 SessionQueryString 中,因此您可以从 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;
        }

这应该没问题!