Zugang Linkbutton aus Datenliste auf Pageload mit c # asp.net
-
18-09-2019 - |
Frage
Ich habe diese Linkbutton innerhalb einer Datalist und ich versuche, den Zugang zum Datenliste auf der Pageload zu bekommen, so kann ich die Linkbutton gesetzt aktiviert oder nicht auf der Rolle des Benutzers basieren.
<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>
Innerhalb der Seite zu laden Ich mag den Linkbutton zugreifen zu können, um es zu aktivieren oder zu deaktivieren, basierend auf der Rolle des Benutzers.
private void Page_Load(object sender, System.EventArgs e) {
//perhaps something like this:
lnkEdit.Enabled = false;
....
}
Lösung
Ich denke, dass Sie die Datenliste zum ersten Mal Seite geladen ist werden bevölkern. Also nur ItemDataBound wireup, finden Link und deaktivieren.
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
}
}
Andere Tipps
Datalist ist eine Databound-Kontrolle - es baut Zeilen nur, wenn Daten versorgt wird. Für den Zugriff auf Link in Reihe verwendet ItemDataBound Ereignis und Zugang e.Item.FindControl ( "LinkId");