Ciao, mi permetto di suggerirti una soluzione che secondo me è più corretta e performate.
Prima di tutto confermo quello che ti ha detto alexmed riguardo il DataKeyNames. Devi impostarlo con il nome del campo ID del commento, solo in questo modo puoi effettuare le cancellazioni.
Come seconda modifica ti proporrei di rinominare il CommandName del pulsante in "Delete" (perché è select se l'operazione è elimina?)
Terza modifica è mettere il pulsante Visible="false"
Questo perché a priori il pulsante non di deve vedere, eccetto che per il proprietario.
Infine, la gestione del pulsante non la farei nel prerender, ma nel ItemDataBound.
Ecco un po di codice:
MembershipUser actualUser;
protected void Page_Load(object sender, EventArgs e)
{
if (User.Identity.IsAuthenticated)
{
actualUser = Membership.GetUser();
}
}
protected void ListView1_ItemDataBound(object sender, ListViewItemEventArgs e)
{
if (actualUser != null && e.Item.ItemType == ListViewItemType.DataItem)
{
Button btn = e.Item.FindControl("Button3") as Button;
string actualID = actualUser.ProviderUserKey.ToString();
string recordUserID = (e.Item.DataItem as DataRowView)["id"].ToString();
if (actualID == recordUserID)
{
btn.Visible = true;
}
}
}
Per quanto riguarda la cancellazione, dovrei sapere come hai gestito i dati (SqlDataSource o altro)
Ciao
____________
Ricordati di utilizzare il tasto "Accetta" se i nostri consigli ti sono serviti a risolvere il problema.
È il modo per ringraziare chi ti ha aiutato.