我希望能够显示基于用户角色的/hide "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>发布于 2018-10-05 15:08:01
<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;
}
}发布于 2018-10-06 07:28:07
谢谢你的回复和指导,迈克。在你回复之前,我决定尝试一种非常类似的方法。受保护的void发送者(object Repeater1_ItemDataBound,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为空或为null,则页面崩溃。
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
}https://stackoverflow.com/questions/52655034
复制相似问题