Ciao a tutti!
Ho una gridview che si popola da codice, in questa griglia ho una colonna dove vorrei far visualizzare una dropwonlist quando modifico o aggiungo un record
Sono riuscito a popolare la dropdownlist con i dati che mi servono, ma nel momento in cui faccio click su modifica riga, compare la dropdownlist (con tutti gli items corretti) senza la selezione del giusto valore, rimane sempre selezionato il primo items in elenco
Come faccio a passare ID esatto alla dropdown list quando faccio la modifica?
Vi posto il codice...
La dropdownlist si chiama ddlContatto
griglia.aspx
codice:<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1" AllowPaging="True" Width="100%" ShowFooter="True" AllowSorting="True" PageSize="20"> <AlternatingRowStyle BackColor="#DFDFDF" /> <PagerStyle ForeColor="#3a4f63" HorizontalAlign="Right" BackColor="#C6C3C6"></PagerStyle> <Columns> <asp:TemplateField HeaderText="Id" InsertVisible="False" ShowHeader="False"> <EditItemTemplate> <asp:Label ID="Label1" runat="server" Text='<%# Eval("id") %>'></asp:Label> </EditItemTemplate> <ItemTemplate> <asp:Label ID="Label1a" runat="server" Text='<%# Bind("id") %>'></asp:Label> </ItemTemplate> <ItemStyle Width="50px" /> </asp:TemplateField> <asp:TemplateField HeaderText="Creato" SortExpression="data_creazione" InsertVisible="False"> <EditItemTemplate> <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("data_creazione") %>'></asp:TextBox> </EditItemTemplate> <ItemTemplate> <asp:Label ID="Label2" runat="server" Text='<%# Bind("data_creazione") %>'></asp:Label> </ItemTemplate> <HeaderStyle HorizontalAlign="Center" /> <ItemStyle HorizontalAlign="Left" /> </asp:TemplateField> <asp:TemplateField HeaderText="Con" SortExpression="n_contatto"> <EditItemTemplate> <asp:DropDownList ID="ddlContatto" runat="server" DataSourceID="SqlDataSource2" DataTextField="nominativo" DataValueField="id" Width="199px" AppendDataBoundItems="true"> </asp:DropDownList> </EditItemTemplate> <ItemTemplate> <asp:Label ID="Label3" runat="server" Text='<%# Bind("nome_contatto") %>'></asp:Label> </ItemTemplate> <FooterTemplate> <asp:DropDownList ID="ddlAddContatto" runat="server" DataSourceID="SqlDataSource2" DataTextField="nominativo" DataValueField="id" Width="199px" AppendDataBoundItems="true"> </asp:DropDownList> </FooterTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Azione" SortExpression="note_app"> <EditItemTemplate> <asp:TextBox ID="TextBox3" runat="server" Text='<%# Bind("note_app") %>'></asp:TextBox> </EditItemTemplate> <ItemTemplate> <asp:Label ID="Label4" runat="server" Text='<%# Bind("note_app") %>'></asp:Label> </ItemTemplate> <FooterTemplate> <asp:TextBox id="txtAddNote_app" runat="server"></asp:TextBox> </FooterTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Prossima Azione" SortExpression="data_appuntamento"> <EditItemTemplate> <asp:TextBox ID="TextBox4" runat="server" Text='<%# Bind("data_appuntamento") %>'></asp:TextBox> </EditItemTemplate> <ItemTemplate> <asp:Label ID="Label5" runat="server" Text='<%# Bind("data_appuntamento") %>'></asp:Label> </ItemTemplate> <FooterTemplate> <asp:TextBox id="txtAddData_appuntamento" runat="server"></asp:TextBox> </FooterTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Avvisa Admin." SortExpression="email_resp"> <EditItemTemplate> <asp:CheckBox ID="CheckBox1" runat="server" Checked='<%# Bind("email_resp") %>' /> </EditItemTemplate> <ItemTemplate> <asp:CheckBox ID="CheckBox1" runat="server" Checked='<%# Bind("email_resp") %>' Enabled="false" /> </ItemTemplate> <FooterTemplate> <asp:CheckBox id="chkAddAvvisa_admin" runat="server"></asp:CheckBox> </FooterTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Eseguito" SortExpression="eseguito" InsertVisible="False"> <EditItemTemplate> <asp:CheckBox ID="CheckBox2" runat="server" Checked='<%# Bind("eseguito") %>' /> </EditItemTemplate> <ItemTemplate> <asp:CheckBox ID="CheckBox2" runat="server" Checked='<%# Bind("eseguito") %>' Enabled="false" /> </ItemTemplate> <FooterTemplate> <asp:Button id="btnAdd" runat="server" Text="Aggiungi" Width="60px" CommandName="Add"></asp:Button> </FooterTemplate> </asp:TemplateField> <asp:CommandField AccessibleHeaderText="Modifica" ButtonType="Button" DeleteText="" EditText="Modifica" UpdateText="Salva" CancelText="Annulla" ShowEditButton="True" HeaderText="Modifica" /> </Columns> </asp:GridView>
griglia.aspx.vb
codice:Imports System.Data Imports System.Data.SqlClient Imports System.Transactions Imports System.Net.Mail Imports System.IO Imports System.Web.Configuration Partial Class ravizza_super_admin_it_Note_azienda Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Not IsPostBack Then id_cliente.Value = Request.QueryString("id_cli") id_contatto.Value = Request.QueryString("id_con") se_utente.Value = Session("s_utente") se_tipo.Value = Session("s_tipo") 'CARICO LE INFORMAIONI GENERALI DELLA PRATICA Dim SQL As String Dim cmd As SqlCommand SQL = "SELECT ragione_sociale FROM CLIENTI_POTENZIALI WHERE (id=@id)" cmd = New SqlCommand(SQL, New SqlConnection(ConfigurationManager.ConnectionStrings("dbConnectionString").ToString)) Try With cmd.Parameters .Add("@id", SqlDbType.Int) End With cmd.Parameters("@id").Value = id_cliente.Value 'APRE LA CONNESSIONE cmd.Connection.Open() 'ESEGUE NLA QUERY, RESTITUISCE UN OGGETTO SqlDataReader Dim dr As SqlDataReader = (cmd.ExecuteReader(CommandBehavior.CloseConnection)) If dr.HasRows Then 'si sposta ciclicamente attraverso i record e visualizza i valori. Do While dr.Read cliente.Text = dr("ragione_sociale") cliente.CssClass = "titolo_pratica" Loop Else 'MsgBox("Utente e/o password errati", vbCritical, "ERRORE") End If dr.Close() Catch ex As Exception 'messageBox.Show("Riportare il seguente errore al programmatore: ERRORE 0161" & vbCrLf & ex.Message, "Errore sql") Exit Sub Finally cmd.Connection.Close() End Try SqlDataSource2.SelectCommand = "SELECT id, nome + ' ' + cognome as nominativo FROM [CONTATTI] WHERE n_cliente=" & id_cliente.Value & " ORDER BY nominativo" End If SqlDataSource2.SelectCommand = "SELECT id, nome + ' ' + cognome as nominativo FROM [CONTATTI] WHERE n_cliente=" & id_cliente.Value & " ORDER BY nominativo" End Sub Sub carica_dati() Dim SQL As String Dim n_banca As String = "" Dim n_filiale As String = "" Dim n_confido As String = "" Dim id_utente As String = "" SQL = "SELECT APPUNTAMENTI.id, APPUNTAMENTI.data_creazione, note_app, data_appuntamento, eseguito, n_contatto, APPUNTAMENTI.email_resp, nome + ' ' + cognome as nome_contatto FROM APPUNTAMENTI, CONTATTI WHERE APPUNTAMENTI.n_contatto=CONTATTI.id and APPUNTAMENTI.n_cliente=" & id_cliente.Value & "" If data_da.Text <> "" And data_a.Text <> "" Then SQL = SQL & " and (APPUNTAMENTI.data_creazione between convert(varchar, @f_data_da, 101) and convert(varchar, @f_data_a, 101))" End If If persone.SelectedValue <> "0" Then SQL = SQL & " AND (n_contatto=@f_persone)" End If If azione.Text <> "" Then SQL = SQL & " AND (note_app LIKE '%' + @f_azione + '%')" End If If data_da2.Text <> "" And data_a2.Text <> "" Then SQL = SQL & " and (data_appuntamento between convert(varchar, @f_data_da2, 101) and convert(varchar, @f_data_a2, 101))" End If If si.Checked = True Then SQL = SQL & " and (APPUNTAMENTI.email_resp='true')" ElseIf no.Checked = True Then SQL = SQL & " and (APPUNTAMENTI.email_resp='false')" End If If si2.Checked = True Then SQL = SQL & " and (eseguito='true')" ElseIf no2.Checked = True Then SQL = SQL & " and (eseguito='false')" End If SQL = SQL & " ORDER BY id DESC" SqlDataSource1.SelectCommand = SQL End Sub Protected Sub GridView1_RowCancelingEdit(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCancelEditEventArgs) Handles GridView1.RowCancelingEdit GridView1.EditIndex = -1 GridView1.ShowFooter = True End Sub Protected Sub GridView1_RowEditing(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewEditEventArgs) Handles GridView1.RowEditing GridView1.EditIndex = e.NewEditIndex GridView1.ShowFooter = False End Sub Protected Sub GridView1_RowUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles GridView1.RowUpdating End Sub End Class
Grazie mille!!!

Rispondi quotando
