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
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456