DropDownlist e gridview

martedì 26 luglio 2011 - 14.45
Tag Elenco Tags  C#  |  .NET 2.0  |  Windows XP  |  Visual Studio 2008  |  Access (.mdb)

paolo973 Profilo | Senior Member

Ciao a tutti,

ho un DB access con due tabelle, tblCategorie e tblProdotti così fatte:
tblCategorie : idCategoria (numerico) nomeCategoria (testo);
tblProdotti : idProdotto (numerico) idCategoria (numerico) nomeProdotto (testo) ;
desidero modificare il nomeProdotto della tblProdotti usando una gridview e ci sono riuscito.
...
<Columns>
<asp:CommandField ShowEditButton="True" />
<asp:BoundField DataField="idProdotto " InsertVisible="False" ReadOnly="True" />
<asp:BoundField DataField="idCategoria" />
<asp:BoundField DataField="nomeProdotto " />
</Columns>
...
Devo modificare la categoria di ogni prodotto e non vedo il nome ma bensì il dato numerico ovvero idCategoria.
desidero vedere il nome della categoria magari scegliendolo da una DropDownList
allora ho modificato le colonne della gridview1 nel seguente modo:

<Columns>
<asp:CommandField ShowEditButton="True" />
<asp:BoundField DataField="idProdotto " InsertVisible="False" ReadOnly="True" />
<asp:BoundField DataField="nomeProdotto " />
<asp:TemplateField HeaderText="CATEGORIA" SortExpression="idCat" >
<ItemTemplate>
<asp:DropDownList ID="idCat1" runat="server"
DataSourceID="AccessDataSource2"
DataTextField="nome" DataValueField="idCat">
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
</Columns>

con accessdatasource2

<asp:AccessDataSource ID="AccessDataSource2" runat="server" ConflictDetection="CompareAllValues"
DataFile="~/App_Data/db.mdb" OldValuesParameterFormatString="original_{0}"
SelectCommand="SELECT * FROM [tblCategoria2]"
</asp:AccessDataSource>


DOMANDA:
Come legare la dropdownlist della gridview1 affinché quando vado in modifica posso cambiare la categoria di ogni prodotto scegliendo una categoria testuale dalla dropdownlist?

Gluck74 Profilo | Guru

Ti consiglio di mantenere gli ItemTemplate solo in lettura, ed aggiungere un EditItemtemplate per modificare la categoria come vuoi tu:
<Columns> <asp:CommandField ShowEditButton="True" /> <asp:BoundField DataField="idProdotto " InsertVisible="False" ReadOnly="True" /> <asp:BoundField DataField="nomeProdotto " /> <asp:TemplateField HeaderText="CATEGORIA" SortExpression="idCat" > <ItemTemplate> una label o cosa preferisci </ItemTemplate> <EditItemTemplate> <asp:DropDownList ID="idCat1" runat="server" DataSourceID="AccessDataSource2" DataTextField="nome" DataValueField="idCat" SelectedValue='<%# Bind("IdCategoria") %>'> </asp:DropDownList> </EditItemTemplate> </asp:TemplateField> </Columns>

Però ricorda che devi configurare il primo DataSource in modo da avera anche un UpdateCommand con i giusti parametri.


____________
Ricordati di utilizzare il tasto "Accetta" se i nostri consigli ti sono serviti a risolvere il problema.
È il modo per ringraziare chi ti ha aiutato.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5