Ciao a tutti,
io ho un data grid che carico tramite una ricerca. Ora nel DataGrid ho una textbox e un checkbox che sono modificabili.
Riesco a recuperare il valore della check ma non quello della textbox. Dove sbaglio?
Ecco il VBcodice:<asp:DataGrid ID="dtgIncassi" runat="server" Width="100%" BorderColor="#E7E7FF" BorderStyle="None" BackColor="White" CellPadding="3" CellSpacing="1" GridLines="Horizontal" BorderWidth="0px" ForeColor="Black" AutoGenerateColumns="False" DataKeyField="id_incasso"> <AlternatingItemStyle BackColor="#D7F19D" Font-Bold="True" Font-Size="8pt"></AlternatingItemStyle> <ItemStyle BackColor="#E9E9E9" Font-Bold="True" Font-Size="8pt"></ItemStyle> <HeaderStyle Font-Bold="True" ForeColor="White" BackColor="DimGray" Font-Size="8pt"> </HeaderStyle> <PagerStyle Mode="NumericPages" HorizontalAlign="Center" CssClass="testo6" Height="20px" Font-Size="8pt" BackColor="#E9E9E9" Font-Bold="True"></PagerStyle> <Columns> <asp:BoundColumn DataField="a.id_venduto" HeaderText="Codice Vendita"></asp:BoundColumn> <asp:BoundColumn DataField="ragione_sociale" HeaderText="Fornitore"></asp:BoundColumn> <asp:BoundColumn DataField="data_vendita" HeaderText="Data Vendita" DataFormatString="{0:dd/MM/yyyy}"></asp:BoundColumn> <asp:BoundColumn DataField="servizio" HeaderText="Servizio" DataFormatString="{0:F}"> <ItemStyle Width="100px" /> </asp:BoundColumn> <asp:BoundColumn DataField="nomeCognome" HeaderText="Collaboratore"> <ItemStyle Width="100px" /> </asp:BoundColumn> <asp:BoundColumn DataField="provv_azienda" HeaderText="Provv. A"> <ItemStyle Width="60px" /> </asp:BoundColumn> <asp:BoundColumn DataField="provv_azienda_p" HeaderText="Provv. A %"> <ItemStyle Width="60px" /> </asp:BoundColumn> <asp:TemplateColumn HeaderText="Rif. Documento"> <ItemTemplate> <asp:TextBox ID="cbxDocumento" Visible="true" runat="server" CssClass="input" > </asp:TextBox> </ItemTemplate> </asp:TemplateColumn> <asp:TemplateColumn HeaderText="Incasso F."> <ItemTemplate> <asp:CheckBox ID="cbxIncassato" Visible="true" runat="server" Checked='<%# iif(Container.DataItem("incassato")=True,True,False) %>'> </asp:CheckBox> <asp:Label ID="id_incasso" Visible="false" runat="server" Text='<%# Container.DataItem("id_incasso") %>'></asp:Label> </ItemTemplate> </asp:TemplateColumn> <asp:TemplateColumn HeaderText="Paga D." Visible=false> <ItemTemplate> <asp:CheckBox ID="cbxPagato" Visible="true" runat="server" Checked='<%# iif(Container.DataItem("pagato")=True,True,False) %>'> </asp:CheckBox> <asp:Label ID="id_venduto" Visible="false" runat="server" Text='<%# Container.DataItem("a.id_venduto") %>'></asp:Label> </ItemTemplate> </asp:TemplateColumn> </Columns> </asp:DataGrid>
Chiaro cosa dovrei fare? Grazie a tutticodice:Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Not IsPostBack Then BindData() fill_fornitori() Enable_Disable_Panel("Disable") End If End Sub Sub fill_fornitori() Dim sql As String sql = "SELECT id_fornitore, ragione_sociale FROM fornitori " Dim MyConnection As New OleDbConnection(connetti) Dim MyCommand As New OleDbCommand(sql, MyConnection) Dim myDataSet As New System.Data.DataSet Dim myDataAdapter As OleDbDataAdapter myDataAdapter = New OleDbDataAdapter(MyCommand) myDataAdapter.Fill(myDataSet, "result") If myDataSet.Tables("result").Rows.Count > 0 Then fornitore.DataSource = myDataSet.Tables("result") fornitore.DataBind() Else fornitore.ClearSelection() fornitore.Items.Add("Non Disponibile") End If fornitore.Items.Add("Tutti") fornitore.Items.FindByValue("Tutti").Selected = True End Sub Function BindData(Optional ByVal id_fornitore As String = "", Optional ByVal id_servizio As String = "", Optional ByVal id_dipendente As String = "") Dim myDataSet As New System.Data.DataSet Dim MyConnection As OleDbConnection MyConnection = New OleDbConnection(connetti()) Dim myoledbDataAdapter As OleDbDataAdapter Dim sql As String If id_fornitore = "Non Disponibile" Or id_fornitore = "Tutti" Then id_fornitore = "" Dim filtro_fornitore As String filtro_fornitore = " AND fornitori.id_fornitore = " + id_fornitore If id_fornitore = "" Then filtro_fornitore = "" sql = "SELECT * FROM (SELECT fornitori.ragione_sociale,fornitori.id_fornitore,servizi.servizio,servizi.servizio,servizi.provv_azienda,servizi.provv_azienda_p, ( dipendenti.nome + space(1) + dipendenti.cognome) AS nomeCognome, vendite.id_venduto AS id_venduto,vendite.pagato, vendite.data_vendita FROM Fornitori, Servizi, Vendite, Dipendenti WHERE fornitori.id_fornitore = vendite.id_fornitore AND servizi.id_servizio = vendite.id_servizio AND dipendenti.id_dipendente = vendite.id_dipendente " + filtro_fornitore + ") AS a LEFT JOIN (SELECT incassi.id_incasso,incassi.id_venduto,incassi.incassato FROM Incassi where incassi.incassato<>-1) AS b on a.id_venduto = b.id_venduto ORDER BY vendite.data_vendita DESC" Dim MyCommand As New OleDbCommand(sql, MyConnection) Dim dv As System.Data.DataView Try myoledbDataAdapter = New OleDbDataAdapter(MyCommand) myoledbDataAdapter.Fill(myDataSet, "result") Catch ex As OleDbException Response.Write(ex.Message) Response.Write("<script language='javascript'>alert('.::ERRORE::.');</" + "SCRIPT>") Finally MyConnection.Close() dtgIncassi.CurrentPageIndex = 0 dtgIncassi.DataSource = myDataSet.Tables("result") dtgIncassi.DataBind() End Try Return (myDataSet.Tables("result")) End Function Protected Sub btnSalva_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSalva.Click Dim sql As String Dim sql1 As String Dim incassato As String Dim Documento As String Dim pagato As String Dim i As Integer Dim errore As Boolean If dtgIncassi.Items.Count > 0 Then For i = 0 To dtgIncassi.Items.Count - 1 Dim _incassato As New CheckBox _incassato = CType(dtgIncassi.Items(i).Cells(4).FindControl("cbxIncassato"), CheckBox) Dim _pagato As New CheckBox _pagato = CType(dtgIncassi.Items(i).Cells(4).FindControl("cbxPagato"), CheckBox) 'Come recupero il valore della textbox???? Dim _id_incasso As New Label _id_incasso = CType(dtgIncassi.Items(i).Cells(5).FindControl("id_incasso"), Label) Dim _id_venduto As New Label _id_venduto = CType(dtgIncassi.Items(i).Cells(5).FindControl("id_venduto"), Label) If _incassato.Checked = True Then incassato = "True" Else incassato = "False" End If If _pagato.Checked = True Then pagato = "True" Else pagato = "False" End If If _id_incasso.Text = "" Then sql = " INSERT INTO incassi (id_venduto, data_incasso, incassato, rif_documento) VALUES ('" + _id_venduto.Text + "','" + String.Format("{0:dd/MM/yyyy}", Now) + "'," + incassato + ",'" + incassato + "')" Else sql = "UPDATE Incassi SET incassato=" + incassato + " WHERE id_incasso= " + CStr(_id_incasso.Text) End If 'sql1 = "UPDATE Vendite SET pagato=" + pagato + " WHERE id_venduto= " + CStr(_id_venduto.Text) Dim tran As OleDbTransaction Dim MyConnection As OleDbConnection MyConnection = New OleDbConnection(connetti()) Dim MyCommand As New OleDbCommand(sql, MyConnection) ' Dim MyCommand1 As New OleDbCommand(sql1, MyConnection) Try MyConnection.Open() tran = MyConnection.BeginTransaction MyCommand.Transaction = tran MyCommand.ExecuteNonQuery() 'MyCommand1.Transaction = tran 'MyCommand1.ExecuteNonQuery() tran.Commit() errore = False Catch EX As OleDbException errore = True Response.Write(EX.Message) tran.Rollback() MyCommand.Dispose() MyConnection.Close() 'MyCommand1.Dispose() Finally MyCommand.Dispose() 'MyCommand1.Dispose() MyConnection.Close() End Try Next If errore = False Then Response.Write("<script language='javascript'>alert('Inserimento Effettuato Correttamente!');</" + "SCRIPT>") Enable_Disable_Panel("Disable") End If Else Response.Write("<script language='javascript'>alert('ATTENZIONE! Non Esistono Elementi');</" + "SCRIPT>") End If End Sub Protected Sub btnCerca_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnCerca.Click BindData(fornitore.SelectedValue) Enable_Disable_Panel("Enable") End Sub Sub Enable_Disable_Panel(ByVal mode) If mode = "Enable" Then pnlDataGrid.Visible = True btnSalva.Visible = True ElseIf mode = "Disable" Then pnlDataGrid.Visible = False btnSalva.Visible = False End If End Sub

Rispondi quotando