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 に答える