DevTrain Startseite Visual Studio 1 Magazin  
  
  
SUCHEN:  
ARTIKEL ONLINE: 525   

Kategorien
.NET
Datenbanken
Web
XML

Allgemein
Camp
Foren
Events
Persönliche Einstellungen
Registrieren
Prämien Shop
Kontakt
Impressum
Über DevTrain

Autoren


   Autor: Hannes Preishuber Artikel Drucken
        
DropDownlist in einem ASP .Net Datagrid

Ein Datagrid erlaubt das komfortable Anzeigen von Datensätzen als Tabelle. Meist genügen zwei Befehle für das Ergebnis. In ASP. NET gibt es ein solches Datagrid. Die Anwendung wurde hier schon mehrmals diskutiert.
Das Datagrid von ASP.NET ist aber sehr mächtig und kann beinahe beliebig den eigenen Bedürfnissen angepasst werden. So unterstützt es das Feature des editieren von Daten innerhalb des Grids.
Wenn nun aber zum editieren eine "normale" Textbox nicht ideal ist, können Sie über die Templatecolumns alles mögliche in das Grid zaubern.

Eine normale Spalte wird wie folgt definiert. Im folgenden eine ID Spalte die nicht editierbar ist.
<asp:BoundColumn HeaderText="ID" ReadOnly="True" DataField="CompanyName"        ItemStyle-Wrap="false" ItemStyle-VerticalAlign="top" />

Bei einer Templatecolumn müssen sie zwei Design festlegen. Das für das reine anzeigen und das im Edit Mode. Diese Trennung erfolgt über ItemTemplate und Edititemtemplate.
Im Itemtemplate werden in unserem Fall die reinen Daten aus dem Feld ProductCount ausgegeben.

Beim EditItemtemplate können Sie nun mit sämtlichen HTML und ASP.NET Tags drauf loslegen. In diesem Beispiel ist es eine Dropdown Liste und eine Textbox       

<asp:TemplateColumn HeaderText="Products" >
<ItemTemplate>
            <%# DataBinder.Eval(Container.DataItem, "ProductCount") %> Products
</ItemTemplate>

<EditItemTemplate>
            <TABLE Width="100%" CellPadding="0" CellSpacing="0" Border="0">
              <TR>
                <TD Style="font-size:8" Width="20%">
                  <b>CHANGE -</b>
                </TD>
                <TD>
                  <asp:DropDownList
                    Runat="server"
                    Id="edit_Product"
                    DataSource='<%# GetProducts((int)DataBinder.Eval(Container.DataItem, "SupplierID")) %>'
                    DataTextField="ProductName"
                    DataValueField="ProductID"
                    Width="200" />
                </TD>
              </TR>
              <TR>
                <TD Style="font-size:8" Width="20%">
                  <b>TO - </b>
                </TD>
                <TD>
                  <asp:TextBox
                    id="NewProductName"
                    runat="Server"
                    Width="200" />
                </TD>
              </TR>
            </TABLE>

</EditItemTemplate>

</asp:TemplateColumn>

Fällt Ihnen was auf?
Ja richtig. Die Datenbindung bei der Drop Downliste erfolgt über eine Funktion GetProducts.

protected DataTable GetProducts(int SupplierID)
{
    SqlDataAdapter SqlDa = new SqlDataAdapter("SELECT ProductName, ProductID FROM Products WHERE SupplierID = @SupplierID", SqlCon);
    SqlDa.SelectCommand.Parameters.Add(new SqlParameter("@SupplierID", SqlDbType.VarChar, 100));
    SqlDa.SelectCommand.Parameters["@SupplierID"].Value = SupplierID;
    DataSet ds = new DataSet();
    SqlDa.Fill(ds, "ProductList");
    return ds.Tables["ProductList"];
  }

Dieser Artikel bezieht sich auf die BETA2 von .NET.         


DevTrain Camp - Schneller zum .NET 3.5 Developer
 
Verwandte Artikel      Verlinkte Dokumente
    Keine verknüpften Dokumente
    Keine Links vorhanden

  Erfasst am: 20.07.2001
  Gültig bis: 19.08.2001
16 Ratings
Bewertung: 56,3%
schlecht    sehr gut  

 
© Copyright 2007 ppedv AG