在ul-li列表中动态加载Customer_Name

时间:2015-03-16 05:27:46

标签: html asp.net session session-variables

我有一个页面,用户登录并重定向到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对象包含所有细节,不知怎的主页不是!

1 个答案:

答案 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存储在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;
        }

这应该可以正常工作!