Aggiungere una DropDownList in un DataGrid

di Daniele Bochicchio, in ASP.NET, DataGrid, ADO.NET,

Non esiste una Column che di default sia in grado di mostrare una DropDownList con i valori presi dalla tabella collegata, ma è possibile aggiungere una TemplateColum al DataGrid per arrivare allo stesso scopo.
L'esempio qui riportato non è completo, ma permette di partire da una struttura ed una logica che possono poi essere facilmente adattabili alla propria realtà.

<SCRIPT RUNAT="SERVER" Language="C#">

DataSet MyDS_Cat;

int GetIndex (int ID) {
  // controlla la colonna ID e restituisci l'indice
     for (int i = 0; i< MyDS_Cat.Tables[0].Rows.Count; i++) {
       if (ID == myDS_Cat.Tables[0].Rows<i>["ID"])
         return i;
  }
}

DataSet Categorie() {
  // valorizza la variabile solo se non è stato già fatto
  if (MyDS_Cat == null) {
    // estrazione del DataSet!
  }
  return MyDS_Cat;
}

</SCRIPT>
<ASP:DataGrid id="myDG"  AutoGenerateColumns="False" runat="server">
  <Columns>
    <ASP:TemplateColumn HeaderText="Stato">
      <ItemTemplate>
        <%# Databinder.Eval(Container.DataItem, "Desc"))%>
      </ItemTemplate>
      <EditItemTemplate>

DataValueField="ID"
DataTextField="Desc"
SelectedIndex='<%# GetIndex(Databinder.Eval(Container.DataItem, "ID"))%>'

          runat="server" />






La funzione Categorie elenca tutti i possibili valori, estraendoli da una tabella collegata.
La funzione GetIndex invece scorre la lista di tutti i valori contenuti all'interno di questa tabella per restituire la posizione in cui si trova il valore impostato all'interno della tabella principale.

Per approfondimenti sul DataGrid si veda:
Speciale DataGrid di ASP.NET
https://www.aspitalia.com/servizi/focus/mostra.aspx?ID=446

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi