Ciao a tutti
ho un problemone,..
il datagrid in modalità edit, chiamo la funzione OnEditCommand
riesco a prelevare il valore dalla cella ma non è il valore che ho editato ma è quello presente su DB.
Come posso fare? insomma.. dove sbaglio?
p.s. ho provato in mille modi ma a quanto pare non riesco.
PAGINA ASPX
codice:<form runat="server" id="formMenu"> <MenuSegreteria:Menu id="Menu" runat="Server" /> <tr valign="top" bgcolor="#c6d6e6"> <td height="205" colspan="5"> <font CLASS="H4">DEBITI CLIENTI</font> <asp:DataGrid id=D_Debito HorizontalAlign=Center Width=70% runat="server" forecolor="#000000" AutogenerateColumns="false" BorderColor="black" cellpadding="2" cellspacing="0" Font-Size="12pt" ShowFooter="False" HeaderStyle-BackColor="#ffd78d" FooterStyle-BackColor="#ffd78d" ItemStyle-BackColor="#ffffff" AlternatingItemStyle-Backcolor="#ffffcc" AllowPaging="false" Visible=true OnEditCommand="InsertAcconto" OnUpdateCommand="Saldo" > <Columns> <asp:BoundColumn DataField="ID_Cliente" HeaderText="ID_Cliente" Visible=false /> <asp:BoundColumn ReadOnly=True HeaderStyle-CssClass="H5" ItemStyle-CssClass="H6" HeaderStyle-HorizontalAlign=Center DataField="Clienti" HeaderText="Clienti" Visible=true/> <asp:BoundColumn ReadOnly=True HeaderStyle-CssClass="H5" HeaderStyle-HorizontalAlign=Center ItemStyle-HorizontalAlign=Center DataFormatString={0:d} DataField="Data_Di_Nascita_Cliente" HeaderText="Nato" /> <asp:BoundColumn ReadOnly=True HeaderStyle-CssClass="H5" HeaderStyle-HorizontalAlign=Center ItemStyle-HorizontalAlign=Center DataFormatString={0:d} DataField="Ultimo_Abbonamento" HeaderText="Ultimo Abbonamento" /> <asp:BoundColumn ReadOnly=false HeaderStyle-CssClass="H5" HeaderStyle-HorizontalAlign=Center ItemStyle-HorizontalAlign=Center DataFormatString={0:C2} DataField="Debito" HeaderText="Debito" /> <asp:BoundColumn Visible=true HeaderStyle-CssClass="H5" HeaderText="Acconto" HeaderStyle-HorizontalAlign=Center ItemStyle-HorizontalAlign=Center ItemStyle-Width="30" /> <asp:EditCommandColumn HeaderStyle-CssClass="H5" HeaderStyle-HorizontalAlign=Center HeaderText="Saldo" ButtonType=LinkButton ItemStyle-HorizontalAlign=Center ItemStyle-Wrap="True" EditText="Inserimento Acconto" UpdateText="OK" ItemStyle-ForeColor=#660099 Visible="True" ItemStyle-Font-Bold=True /> <asp:TemplateColumn HeaderText="Question"> <EditItemTemplate> <asp:TextBox id="txtDesc" runat="server" Text='0' Width="95%" /> </EditItemTemplate> </asp:TemplateColumn> </Columns> </asp:DataGrid> </td> </tr> </table> </form>
PAGINA VB
codice:Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Debiti() End Sub Function Debiti() 'Dichiaro Le Variabili Dim Sqlview As String Dim StrConn As String Dim MyCat As SqlDataAdapter Dim DSet As DataSet = New DataSet 'Creo un oggetto per la connessione Dim MyConnection As SqlConnection = New SqlConnection 'Assegno valori alle variabili Sqlview = "Select * from V_Debiti" StrConn = (ConfigurationSettings.AppSettings("conn")) 'Apro la connessione MyConnection.ConnectionString = StrConn 'Creo un DataAdapter per selezionare i valori della View MyCat = New SqlDataAdapter(Sqlview, MyConnection) 'Riempi Le Tabelle MyCat.Fill(DSet, "Debiti") 'Assegno al repeater padre il dataSet Debiti D_Debito.DataSource = DSet.Tables("Debiti").DefaultView 'effettuo il collegamento delle risorse DataBind() 'chiudo la connessione MyConnection.Close() End Function Public Sub InsertAcconto(ByVal obj As Object, ByVal e As DataGridCommandEventArgs) D_Debito.EditItemIndex = e.Item.ItemIndex D_Debito.DataBind() ' Crea una reference alla TextBox Dim descTB As TextBox descTB = D_Debito.Items(e.Item.ItemIndex).Cells(7).FindControl("txtDesc") 'Setta il focus sulla TextBox RegisterStartupScript("focus", "<script language=""JavaScript"">" & vbCrLf & _ vbTab & "formMenu." & descTB.ClientID & ".focus();" & _ vbCrLf & vbTab & "formMenu." & descTB.ClientID & ".select();" & _ vbCrLf & "<" & "/script>") End Sub Public Sub Saldo(ByVal obj As Object, ByVal e As DataGridCommandEventArgs) Dim pippo As String pippo = (CType(e.Item.FindControl("txtDesc"), TextBox)).Text Dim strName As String = CType(e.Item.Cells(4).Controls(0), TextBox).Text Response.Write(strName) Response.Write(pippo) D_Debito.DataBind() End Sub

Rispondi quotando