33 messaggi dal 25 settembre 2002
E' proprio quello che volevo fare, ma non riesco a impostare il valore al campo.

Ti spiego:
- controllo il valore del campo, se non è vuoto esco e non consento la modifica (e questo mi funziona correttamente)
- se il campo è vuoto, vorrei impostargli un valore e consentire all'utente di premere il pulsante update o cancel per validare o annullare la modifica. Questo non riesco a farlo.

A codice, nell'evento GridView1_RowEditing scrivo il seguente codice:

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;

// Verifico se la data di restituzione è vuota

if (DataRest != "")
{
// Annullo l'edit e torno alla visualizzazione avvisando l'utente
// che l'operazione non è possibile. Questo funziona.
this.Label1.Text = "Oggetto già restituito!";
e.Cancel = true;
}
else
{

DataRest = System.DateTime.Today.ToShortDateString();

// qui dovrei impostare il valore DataRest alla mia cella
// ma non so come fare

}
}

Ciao.
Filomena
forse adesso ho capito per bene scusa ma i neuroni con il freddo peggiorano

gestiamo l'evento RowDataBound, le modifiche che apporti nell'evento RowEditing vengono sovrascitte.


 protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowState == DataControlRowState.Edit)
        {
            TextBox texbox = e.Row.Cells[index].Controls[0] as TextBox;

            if (texbox != null)
            {
                texbox.Text = "Test";
            }
        }
    }



naturaleme è un esempio sostiruisci index con la l'indice della cella che contene la data nel tuo caso mi sembra 6

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
Non funziona :-(

Mi dice :
Specified argument was out of the range of valid values.
Parameter name: index
sulla riga: TextBox texbox = e.Row.Cells[6].Controls[1] as TextBox;

Ho scritto questo nel mio codice, ma forse è sbagliato:

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;

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;
}
}

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowState == DataControlRowState.Edit)
{

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

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

Oltre alla gridview ho nella stessa pagina una textbox che mi filtra la select della gridview.
Scusa la mia ignoranza, ma è da poco che uso asp.net 2.0.

ciao.
Filomena
strano, il tuo GridView ha perlomeno sette colonne?

per sicurezza posta la parte dichiarativa, magari se hai dei tag di formattazione rimuovili almeno risulta tutto più leggibile.

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
>strano, il tuo GridView ha perlomeno sette colonne?

Si, ne ha 7, ma le prime 5 sono readonly.

Il mio gridview è all'interno di un contentplaceholder (uso masterpage e css per disegnare l'interfaccia grafica).

ciao.
Filomena
il fatto che le BoundField siano ReadOnly non influisce sul loro indice, strano davvero puoi postare il GridView?

ciao marco
Modificato da nostromo il 13 dicembre 2006 12.15 -

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
Ho riscritto tutta la pagina ed ho scoperto che non funziona l'edit.

Mi spiego:
- creo la gridview con il suo sqdatasource e lascio tutti i campi come li crea lui
- imposto AutoGenerateEditButton = true
- ho fatto il build
- eseguo la pagina, faccio l'edit, modifico a mano il campo, schiaccio Update e mi ripresenta il gridview allo stato originale, mi perde le modifiche!

Hai qualche suggerimento?

Grazie.
Filomena
strano, se testi la query di update in un tool tipo il VS o Sql Management Studio funziona?

ciao marco

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

http://nostromo.spaces.live.com/default.aspx

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.