33 messaggi dal 25 settembre 2002
Ho provato a riscrive la pagina.
Ti posto il .cs e il .aspx

-.cs

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class Gestione_Restituzione : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}

protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
String DataRest = this.GridView1.Rows[e.NewEditIndex].Cells[6].Text;
this.Label1.Text = DataRest;
this.Label1.Visible = true;

// For this example, cancel the edit operation if the user attempts
// to edit the record of a customer from the Unites States.
if (DataRest != "")
{
// Cancel the edit operation.
e.Cancel = true;
// this.Label1.Text = "Oggetto già restituito!";
}
else
{
DataRest = System.DateTime.Today.ToShortDateString();
this.GridView1.Rows[e.NewEditIndex].Cells[6].Text = DataRest;
this.Label1.Text = DataRest;
//e.Cancel = true;

//return;
}
}
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{

}

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{

if (e.Row.RowState == DataControlRowState.Edit)
{

TextBox texbox = e.Row.Cells[6].Controls[0] as TextBox;

if (texbox == null)
{
texbox.Text = System.DateTime.Today.ToShortDateString();
}
}
}
}



-.aspx


<%@ Page Language="C#" MasterPageFile="~/Gestione/MasterGestione.master" AutoEventWireup="true" CodeFile="Restituzione.aspx.cs" Inherits="Gestione_Restituzione" Title="Untitled Page" %>
<asp:Content ID="Content1" ContentPlaceHolderID="Contenuto" Runat="Server">
&nbsp;Utente&nbsp;
<asp:TextBox ID="cCodMatTBox" runat="server"></asp:TextBox>&nbsp;<br />
<br />
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="dDatPre,nNumInvBen,cCodMat"
DataSourceID="SqlDataSourceRestituzione" OnRowEditing="GridView1_RowEditing" DataMember="DefaultView" OnRowUpdating="GridView1_RowUpdating" OnRowDataBound="GridView1_RowDataBound">
<Columns>
<asp:CommandField ShowEditButton="True" />
<asp:BoundField DataField="dDatPre" HeaderText="Data Prestito" ReadOnly="True" SortExpression="dDatPre" />
<asp:BoundField DataField="nNumInvBen" HeaderText="Numero Inventario" ReadOnly="True"
SortExpression="nNumInvBen" />
<asp:BoundField DataField="cCodMat" HeaderText="cCodMat" InsertVisible="False" ReadOnly="True"
SortExpression="cCodMat" />
<asp:BoundField DataField="cCogNomUte" HeaderText="Nome" SortExpression="cCogNomUte" />
<asp:BoundField DataField="cStuDip" HeaderText="cStuDip" SortExpression="cStuDip"
Visible="False" />
<asp:BoundField DataField="cPrenotato" HeaderText="cPrenotato" SortExpression="cPrenotato"
Visible="False" />
<asp:BoundField DataField="dDatRitPre" HeaderText="dDatRitPre" SortExpression="dDatRitPre"
Visible="False" />
<asp:BoundField DataField="cCodLic" HeaderText="cCodLic" SortExpression="cCodLic"
Visible="False" />
<asp:BoundField DataField="dDatScaPre" HeaderText="dDatScaPre" SortExpression="Scadenza" />
<asp:BoundField DataField="dDatRes" HeaderText="dDatRes" SortExpression="Restituito il" />
<asp:BoundField DataField="vNotePre" HeaderText="vNotePre" SortExpression="Note" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSourceRestituzione" runat="server" ConflictDetection="CompareAllValues"
ConnectionString="<%$ ConnectionStrings:PrestitiConnectionString %>" DeleteCommand="DELETE FROM [Prestiti] WHERE [dDatPre] = @original_dDatPre AND [nNumInvBen] = @original_nNumInvBen AND [cCodMat] = @original_cCodMat AND [cCogNomUte] = @original_cCogNomUte AND [cStuDip] = @original_cStuDip AND [cPrenotato] = @original_cPrenotato AND [dDatRitPre] = @original_dDatRitPre AND [cCodLic] = @original_cCodLic AND [dDatScaPre] = @original_dDatScaPre AND [dDatRes] = @original_dDatRes AND [vNotePre] = @original_vNotePre"
InsertCommand="INSERT INTO [Prestiti] ([dDatPre], [nNumInvBen], [cCodMat], [cCogNomUte], [cStuDip], [cPrenotato], [dDatRitPre], [cCodLic], [dDatScaPre], [dDatRes], [vNotePre]) VALUES (@dDatPre, @nNumInvBen, @cCodMat, @cCogNomUte, @cStuDip, @cPrenotato, @dDatRitPre, @cCodLic, @dDatScaPre, @dDatRes, @vNotePre)"
OldValuesParameterFormatString="original_{0}" SelectCommand="SELECT * FROM [Prestiti] WHERE ([cCodMat] = @cCodMat)"
UpdateCommand="UPDATE [Prestiti] SET [cCogNomUte] = @cCogNomUte, [cStuDip] = @cStuDip, [cPrenotato] = @cPrenotato, [dDatRitPre] = @dDatRitPre, [cCodLic] = @cCodLic, [dDatScaPre] = @dDatScaPre, [dDatRes] = @dDatRes, [vNotePre] = @vNotePre WHERE [dDatPre] = @original_dDatPre AND [nNumInvBen] = @original_nNumInvBen AND [cCodMat] = @original_cCodMat AND [cCogNomUte] = @original_cCogNomUte AND [cStuDip] = @original_cStuDip AND [cPrenotato] = @original_cPrenotato AND [dDatRitPre] = @original_dDatRitPre AND [cCodLic] = @original_cCodLic AND [dDatScaPre] = @original_dDatScaPre AND [dDatRes] = @original_dDatRes AND [vNotePre] = @original_vNotePre">
<DeleteParameters>
<asp:Parameter Name="original_dDatPre" Type="DateTime" />
<asp:Parameter Name="original_nNumInvBen" Type="String" />
<asp:Parameter Name="original_cCodMat" Type="String" />
<asp:Parameter Name="original_cCogNomUte" Type="String" />
<asp:Parameter Name="original_cStuDip" Type="String" />
<asp:Parameter Name="original_cPrenotato" Type="String" />
<asp:Parameter Name="original_dDatRitPre" Type="DateTime" />
<asp:Parameter Name="original_cCodLic" Type="String" />
<asp:Parameter Name="original_dDatScaPre" Type="DateTime" />
<asp:Parameter Name="original_dDatRes" Type="DateTime" />
<asp:Parameter Name="original_vNotePre" Type="String" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="cCogNomUte" Type="String" />
<asp:Parameter Name="cStuDip" Type="String" />
<asp:Parameter Name="cPrenotato" Type="String" />
<asp:Parameter Name="dDatRitPre" Type="DateTime" />
<asp:Parameter Name="cCodLic" Type="String" />
<asp:Parameter Name="dDatScaPre" Type="DateTime" />
<asp:Parameter Name="dDatRes" Type="DateTime" />
<asp:Parameter Name="vNotePre" Type="String" />
<asp:Parameter Name="original_dDatPre" Type="DateTime" />
<asp:Parameter Name="original_nNumInvBen" Type="String" />
<asp:Parameter Name="original_cCodMat" Type="String" />
<asp:Parameter Name="original_cCogNomUte" Type="String" />
<asp:Parameter Name="original_cStuDip" Type="String" />
<asp:Parameter Name="original_cPrenotato" Type="String" />
<asp:Parameter Name="original_dDatRitPre" Type="DateTime" />
<asp:Parameter Name="original_cCodLic" Type="String" />
<asp:Parameter Name="original_dDatScaPre" Type="DateTime" />
<asp:Parameter Name="original_dDatRes" Type="DateTime" />
<asp:Parameter Name="original_vNotePre" Type="String" />
</UpdateParameters>
<SelectParameters>
<asp:ControlParameter ControlID="cCodMatTBox" Name="cCodMat" PropertyName="Text"
Type="String" />
</SelectParameters>
<InsertParameters>
<asp:Parameter Name="dDatPre" Type="DateTime" />
<asp:Parameter Name="nNumInvBen" Type="String" />
<asp:Parameter Name="cCodMat" Type="String" />
<asp:Parameter Name="cCogNomUte" Type="String" />
<asp:Parameter Name="cStuDip" Type="String" />
<asp:Parameter Name="cPrenotato" Type="String" />
<asp:Parameter Name="dDatRitPre" Type="DateTime" />
<asp:Parameter Name="cCodLic" Type="String" />
<asp:Parameter Name="dDatScaPre" Type="DateTime" />
<asp:Parameter Name="dDatRes" Type="DateTime" />
<asp:Parameter Name="vNotePre" Type="String" />
</InsertParameters>
</asp:SqlDataSource>
<asp:Label ID="Label1" runat="server" Text="Label" Width="152px"></asp:Label>
</asp:Content>

Non so più cosa fare.

Grazie.
Filomena
sono stato fuori tutto il giorno, stasera dopo cena gli do un occhiata.

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
33 messaggi dal 25 settembre 2002
Sei un angelo.

Grazie.
Filomena
un angelo, figuriamoci mi riconosco più nel piccolo diavolo di Benigni  , scherzi apparte ho dato una controllatina ieri sera, ricevi sempre il solito messaggio di errore sull'indice della colonna?

a prima vista ho trovato questo codice,
if (texbox == null) 
{ 
texbox.Text = System.DateTime.Today.ToShortDateString(); 
} 

che secondo me dovrebbe essere

if (texbox != null)
{
texbox.Text = System.DateTime.Today.ToShortDateString();
}


ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
33 messaggi dal 25 settembre 2002
No, non ho più l'errore.

Grazie a Daniele sono riuscita a riattivare il debug, perciò ora posso vedere cosa fa il codice.

Quando schiaccio Edit mi invoca ben 3 volte il GridView1_RowDataBound prima di visualizzarmi la riga in edit ed entra nel ciclo "if (texbox != null) "
solo 1 volta.
Il risultato è che non mi valorizza la textbox relativa a dDatRes.

Se provo a valorizzare il campo a mano, digitando io una data (o modificando o valorizzando uno qualunque dei campi), quando schiaccio il bottone di update non succede nulla, mi ripropone cioè la gridview in visualizzazione con i valori che avevo prima dell'edit.

Tra l'altro, non so come debuggare questa operazione che lui fa autonomamente.

Ciao.
Filomena
Modificato da swarovsky il 20 dicembre 2006 09.56 -
33 messaggi dal 25 settembre 2002
Ho provato a fare una pagina con un gridview che prende i dati da una tabella con 1 solo campo in indice e funziona.

La tabella che uso per questo gridview ha l'indice composto da 3 campi, sarà questo il motivo?
Se si, come posso risolverlo?

Ciao.
Filomena
l'evento RowDataBound viene richiamato per ogni riga del GridView se sono mille verrà eseguito mille volte.

cosa intendi di preciso "ha l'indice composto da 3 campi"

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
33 messaggi dal 25 settembre 2002
La tabella è indicizzata per codice matricola, Data Prestito, Numero di inventario (cCodMat, dDatPre, nNumInvBen).

La select che faccio per riempire la tabella usa nella Where solo cCodMat.

Ciao.
Filomena