0

我在数据列表中有这个链接按钮,我正在尝试访问页面加载上的数据列表,因此我可以根据用户的角色设置是否启用链接按钮。

<asp:DataList id="dlRecommendations" runat="server" DataKeyField="Key" Width="900">
   <ItemTemplate>
      <asp:LinkButton id="lnkEdit" Text="Edit" Runat="server" CommandName="Edit">    
      </asp:LinkButton>
  </ItemTemplate>
</asp:DataList>

在页面加载中,我希望能够访问链接按钮以根据用户的角色启用或禁用它。

 private void Page_Load(object sender, System.EventArgs e) {
  //perhaps something like this:
  lnkEdit.Enabled = false;
  ....
}
4

2 回答 2

2

我认为您将在第一次加载页面时填充数据列表。所以只需连接ItemDataBound,找到链接并禁用它。

    void dlRecommendations_ItemDataBound(object sender, DataListItemEventArgs e)
    {
        var link = e.Item.FindControl("lnkEdit") as LinkButton;
        if (link != null)
        {
            link.Enabled = UserHasRight;//if user has right then enabled else disabled
        }
    }
于 2009-08-18T16:08:09.393 回答
0

DataList 是一个数据绑定控件 - 它仅在提供数据时才构建行。要访问行内的链接,请使用 ItemDataBound 事件并访问 e.Item.FindControl("linkId");

于 2009-08-18T16:04:22.880 回答