【问题标题】:Show/Hide div tags within an ASP Repeater C#在 ASP 中继器 C# 中显示/隐藏 div 标签
【发布时间】:2023-03-29 23:41:01
【问题描述】:

我希望能够根据用户角色显示/隐藏“div 标签”。

有些人会看到一些东西,而有些人则不会。这在中继器之外很容易。显然d1.Visible = false; 不起作用。

我已经搜索了包括 Stack 在内的网络,但无济于事。更多的是哪个方向合适的问题。

代码 - 内联--

protected void Eng_SelectedIndexChanged(object sender, EventArgs e)

{

sqlInv = "Select Item1, Item2, Item3, From Table";

IDataReader reader6 = DatabaseHelper.GetReader(string.Empty, sqlInv);


    Repeater1.DataSource = reader6;

        Repeater1.DataBind();

        reader6.Close();

}

html

asp:Repeater runat="server" id="Repeater1">

itemtemplate>

div>
div id="d1" runat="server"><%# DataBinder.Eval(Container.DataItem, "Item1") %>/div>

<div id="d2" runat="server"><%# DataBinder.Eval(Container.DataItem, "Item2") %>/div>

div id="d3" runat="server"><%# DataBinder.Eval(Container.DataItem, "Item3") %>/div>


/itemtemplate>

/asp:Repeater>


/div>

【问题讨论】:

    标签: c# asp.net repeater show-hide


    【解决方案1】:
        <asp:Repeater runat="server" id="Repeater1" OnItemDataBound="Repeater1_ItemDataBound">
    
    protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType.Equals(ListItemType.AlternatingItem) || e.Item.ItemType.Equals(ListItemType.Item))
            {
                //You can hide/show disable/enable your div
                Control div1 = e.Item.FindControl("div1");
                //get role here and check 
                // if role != admin 
               div1.Visible = false;
            }
        }
    

    【讨论】:

      【解决方案2】:

      感谢迈克的回复和指导。在您回复之前,我决定尝试一种非常相似的方法。如下: protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)

      if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType ==       ListItemType.AlternatingItem)
          {
      
      
      
      
              // Show or hid div here
              System.Web.UI.HtmlControls.HtmlContainerControl div1 = (System.Web.UI.HtmlControls.HtmlContainerControl)e.Item.FindControl("div1");
      
              System.Web.UI.HtmlControls.HtmlContainerControl div2 = (System.Web.UI.HtmlControls.HtmlContainerControl)e.Item.FindControl("div2");
      
              System.Web.UI.HtmlControls.HtmlContainerControl div3 = (System.Web.UI.HtmlControls.HtmlContainerControl)e.Item.FindControl("div3");
      
      Also changed the test for the reader.
      the reader is checking the DB for a RoleId but the problem was when the reader
      

      为空或为空,页面崩溃了。

      I changed to test if the reader had a record or not.
           if (reader6a.Read())
              {
                  div1.Visible = true;
                  div2.Visible = false;
                  div3.Visible = false;
              }
          else
      {
      and so on
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多