Ciao.
Ho dovuto modificare un portale web creato da una terza persona alcuni anni fa dove si faceva largo uso dei DataGrid e non dei piu' recenti GridView.
Devo creare dinamicamente una buttoncolumn in base ad una particolare regola ed eseguire una determinata operazione quando si clicca questo bottone.
Questo è un pezzo di codice utilizzato per la creazione dinamica del ButtonColumn:
if (userInfo.GetRole() != Utility.ROLE_COMMUNICATIONWRITER) { ButtonColumn bc = new ButtonColumn(); bc.CommandName = "UpdateCommunicationState"; bc.HeaderStyle.Width = Unit.Percentage(4); bc.Text = Server.HtmlDecode("<img border=0 alt='Modifica stato comunicazione' src=../../restricted/editorMessaggi/images/mix_ext.png>"); bc.ButtonType = ButtonColumnType.LinkButton; bc.Visible = true; ComDataGrid.Columns.Add(bc); } ComDataGrid.DataBind(); ComDataGrid.Visible = true; Questo invece è il il pezzo di codice utilizzato per il click del bottone:
private void ComDataGrid_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e) {if (e.CommandName == "UpdateCommunicationState") { Response.Redirect("UpdateCommunicationState.aspx?comID=" + comID, true); }}Quest'ultimo pezzo non funziona, nel senso che non viene mai eseguito il metodo ComDataGrid_ItemCommand .
Come posso risolvere la cosa? Ovviamente consigli e migliorie sono ben accetti.
Ciao,
Andrea
.