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;
  ....
}
War es hilfreich?

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");

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top