2009-08-18 9 views
0

私はデータリスト内にこのリンクボタンを持っています。私はpageload上のデータリストにアクセスしようとしていますので、ユーザの設定に基づいてリンクボタンを有効にするかどうかを設定できます役割。ページロード内pageload上のdatalistからc#asp.netにアクセスする

<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> 

私は、ユーザーの役割に基づいて、それを有効または無効にLinkBut​​tonコントロールにアクセスできるようにしたいです。

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

答えて

2

私はあなたが最初にページが読み込まれたときにデータリストを作成すると思います。だからWireup 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 
     } 
    } 
0

DataListはデータバインドされたコントロールであり、データが供給されたときのみ行を作成します。 リンク内の行にアクセスするには、ItemDataBoundイベントを使用してe.Item.FindControl( "linkId")にアクセスします。

関連する問題