ButtonColumn e Command Argument

Alle righe della datagrid sono associabili bottoni/linkbutton ai quali è associabile un comando, ma le ButtomColumn hanno il CommandName ma non il CommandArgument. L'evento di ItemCommand,  associato al _click_ di una ButtonColumn, nasce per avere sia CommandName sia CommandArgument. Sarebbe comodo usare il CommandArgument per avere l'identificativo del record associato all'Item selezionato ma tutti gli esempi dell'MSDN portano il caso in cui tale identificativo è mappato su una colonna della griglia... ma mica è sempre così! Se l'identificativo è - esempio - un Guid cosa gli frega all'utente di avere una colonna tanto lunga e tanto incomprensibile?

Io faccio come segue:

private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
 DataRowView drv = (DataRowView) e.Item.DataItem;
 ((LinkButton) e.Item.Cells[1].Controls[0]).CommandArgument = drv["ID"].ToString();
}

private void DataGrid1_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
 switch(e.CommandName)
 {
  case "UnComandoACaso":       
   int id = Convert.ToInt32(e.CommandArgument.ToString()); //Conversione della stringa nel tipo specifico dell'identificativo.
   //TODO: codice per _puffare_ l'elemento selezionato.
   break;
  }
 }
}

Controindicazioni?

posted @ martedì 5 aprile 2005 11:49

Print

Comments on this entry:

# re: ButtonColumn e Command Argument

Left by MArco at 24/09/2007 20:29
Gravatar
SEi un bruciato
Comments have been closed on this topic.
«ottobre»
domlunmarmergiovensab
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789