Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Datagrid Modalità Editt

    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

  2. #2
    Utente di HTML.it L'avatar di Legnetto
    Registrato dal
    May 2002
    Messaggi
    1,419
    nel page_load:
    codice:
    If not IsPostBack then
    Debiti()
    End If
    Ciao

  3. #3
    ciao avrai sempre su questa pagina un paio di problemi ...




    1.Non riesco a prelevare il mio valore di ID_Cliente non capisco ...riesco a prelevarlo
    solo se è in modalità edit..cioè modificabile..ma non lo voglio cosi,...deve essere invisibile
    e prelevabile...xchè non mi da nessun valore quando tento di prelevarlo?



    2.'Quando faccio edit avviene update che chiamo tramite la stored...
    però se faccio F5 cioè refresh lui mi fa ripartire update
    per cui mi fa scendere ancora il mio debito con il valore inserito prima..
    codice:
    Pagina Vb
    
    Public Sub Saldo(ByVal obj As Object, ByVal e As DataGridCommandEventArgs)
    
                'Dichiaro Le Variabili
            Dim SqlStore As String
            Dim StrConn As String
            Dim DSet As DataSet = New DataSet
            Dim ID_Cliente As Integer
            Dim Acconto As Decimal
            Dim Parametro As SqlParameter
    
            'Prelevo ID_Del Corso e lo converto
            ID_Cliente = Convert.ToInt16(e.Item.Cells(0).Text)
            ID_Cliente = CInt(e.Item.Cells(0).Text)
    
    
            Acconto = (CType(e.Item.FindControl("Acconto"), TextBox)).Text
    
    
            'Creo un oggetto per la connessione
            Dim MyConnection As SqlConnection = New SqlConnection
    
            'Assegno valori alle variabili
            SqlStore = "SP_UpdateSaldo"
            StrConn = (ConfigurationSettings.AppSettings("conn"))
    
            'Apro la connessione
            MyConnection.ConnectionString = StrConn
    
            'Creo un oggetto SqlCommand
            Dim MyCommand As SqlCommand = New SqlCommand(SqlStore, MyConnection)
    
    
            'Richiamo la mia stored Procedure
            MyCommand.CommandType = CommandType.StoredProcedure
    
            'Defenisco i parametri che devo passare alla stored
            Parametro = MyCommand.Parameters.Add("@ID_Cliente", SqlDbType.Int)
            Parametro = MyCommand.Parameters.Add("@Acconto", SqlDbType.SmallMoney)
    
            'Assengo al parametro un valore 
            MyCommand.Parameters("@ID_Cliente").Value = ID_Cliente
            MyCommand.Parameters("@Acconto").Value = Acconto
    
            'Decido che questo parametro è del tipo Input
            Parametro.Direction = ParameterDirection.Input
    
            'Apro la connessione
            MyCommand.Connection.Open()
            MyCommand.ExecuteNonQuery()
    
            'chiudo la connessione
            D_Debito.EditItemIndex = -1
    
            Debiti()
        End Sub
    3.come potete vedere dalla pagina aspx ho un controllo utente , questo mi carica dei msg privati

    e tutto va bene... i msg sono all'interno di un datagrid.
    Io ne visualizzo 5 su 10 esempio quando passo alla pagina dopo ,mi si visualizzano i msg privati e qui tutto ok
    il problema è che se io ho inserito questo controllo utente in un altra pagina...e su questa pagina mostro i mie debiti
    quando clicco su nextpage dei msg privati , mi scompare la parte sotto cioè il mio datagrid dei debiti e non so come richiamarlo
    e stessa cosa accade se nel mio datagrid dei debiti clicco su edit allora mi scomparre il msg privati..
    come posso risolvere questo problema??

    codice:
    Pagina aspx
    
    <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" O
    							OnEditCommand="InsertAcconto"
    							OnUpdateCommand="Saldo">
    							<Columns>
    								<asp:BoundColumn ReadOnly=true  DataField="ID_Cliente" HeaderText="ID_Cliente"/>
    								<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="true" HeaderStyle-CssClass="H5" HeaderStyle-HorizontalAlign="Center"
    									ItemStyle-HorizontalAlign="Center" DataFormatString="{0:C2}" DataField="Debito" HeaderText="Debito" />
    								<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="Acconto">
    									<EditItemTemplate>
    										<asp:TextBox id="Acconto" runat="server" Text='0' Width="95%" />
    									</EditItemTemplate>
    								</asp:TemplateColumn>
    							</Columns>
    						</asp:DataGrid>
    
    					</td>
    				</tr>
    		</table>
    		</FORM>



    grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.