viewState e gridview
mbastoni non è online. Ultima attività: 05/09/2008 12.55.18mbastoni
Inserito il: 04 luglio 2008 15.32
ciao ragazzi, ho un dobbio (non è un vero e proprio problema) ma vorrei capire per evitare di andare a tentativi.

per default il viewstate della pagina è impostato a true. se nella pagina metto una gridview e abilito i bottoni di modifica (o delete), al clic sul pulsante va in errore dicendo che l'evento rowEditing (o rowDeleting) non è gestito; quindi io creo la sub rowEditing senza scriverci nulla e tutto funziona correttamente.

perchè, invece, se al pageLoad DISAIBLITO il viewState non ho la necessità di gestire rowEditig e rowDeleting?

qual'è la strada corretta?
grazie!!

MB
Microsoft Most Valuable Professional
RE: viewState e gridview
nostromo non è online. Ultima attività: 05/09/2008 23.26.40nostromo
Inserito il: 04 luglio 2008 16.06
contributi / Top Poster / Community manager / www.soluzioni4d.it / Blog / 12053 messaggi dal 18 feb 2004 Istalla Microsoft Silverlight!
il tuo GridView a cosa è associato? xxxDataSource o DataSet?

ciao marco

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

http://nostromo.spaces.live.com/default.aspx
RE: viewState e gridview
mbastoni non è online. Ultima attività: 05/09/2008 12.55.18mbastoni
Inserito il: 04 luglio 2008 16.08
la gridview pesca i dati da un dataset
Microsoft Most Valuable Professional
RE: viewState e gridview
nostromo non è online. Ultima attività: 05/09/2008 23.26.40nostromo
Inserito il: 04 luglio 2008 16.27
contributi / Top Poster / Community manager / www.soluzioni4d.it / Blog / 12053 messaggi dal 18 feb 2004 Istalla Microsoft Silverlight!
ok, non ti da errore forse, perche con tutta probabilità non genera nemmeno l'evento di RowEditing non potendo fare affidamento sul ViewState

ciao marco

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

http://nostromo.spaces.live.com/default.aspx
RE: viewState e gridview
mbastoni non è online. Ultima attività: 05/09/2008 12.55.18mbastoni
Inserito il: 04 luglio 2008 16.32
quindi è corretto disabilitare il viewstate in una pagina che contiene la gridview? perchè entrambe le strade funzionano... ma una sarà sicuramente "più corretta" dell'altra....
Microsoft Most Valuable Professional
RE: viewState e gridview
nostromo non è online. Ultima attività: 05/09/2008 23.26.40nostromo
Inserito il: 04 luglio 2008 17.10
contributi / Top Poster / Community manager / www.soluzioni4d.it / Blog / 12053 messaggi dal 18 feb 2004 Istalla Microsoft Silverlight!
mi sa che mi sono fatto forviare dalla tua domanda, allora fai un test:



<%@ Page Language="C#" %>
<%@ Import Namespace="System.Data" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
    private System.Data.DataSet dataSet;

    private void MakeParentTable()
    {
        // Create a new DataTable.
        System.Data.DataTable table = new DataTable("ParentTable");
        // Declare variables for DataColumn and DataRow objects.
        DataColumn column;
        DataRow row;

        // Create new DataColumn, set DataType,
        // ColumnName and add to DataTable.    
        column = new DataColumn();
        column.DataType = System.Type.GetType("System.Int32");
        column.ColumnName = "id";
        column.ReadOnly = true;
        column.Unique = true;
        // Add the Column to the DataColumnCollection.
        table.Columns.Add(column);

        // Create second column.
        column = new DataColumn();
        column.DataType = System.Type.GetType("System.String");
        column.ColumnName = "ParentItem";
        column.AutoIncrement = false;
        column.Caption = "ParentItem";
        column.ReadOnly = false;
        column.Unique = false;
        // Add the column to the table.
        table.Columns.Add(column);

        // Make the ID column the primary key column.
        DataColumn[] PrimaryKeyColumns = new DataColumn[1];
        PrimaryKeyColumns[0] = table.Columns["id"];
        table.PrimaryKey = PrimaryKeyColumns;

        // Instantiate the DataSet variable.
        dataSet = new DataSet();
        // Add the new DataTable to the DataSet.
        dataSet.Tables.Add(table);

        // Create three new DataRow objects and add
        // them to the DataTable
        for (int i = 0; i <= 2; i++)
        {
            row = table.NewRow();
            row["id"] = i;
            row["ParentItem"] = "ParentItem " + i;
            table.Rows.Add(row);
        }
    }


    protected void Page_Load(object sender, EventArgs e)
    {        
        if (!IsPostBack)
        {
            // Run all of the functions.
            MakeParentTable();

            GridView1.DataSource = dataSet.Tables["ParentTable"];
            GridView1.DataBind();
        }

    }


    protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
    {
        MakeParentTable();

        GridView1.DataSource = dataSet.Tables["ParentTable"];

       GridView1.EditIndex = e.NewEditIndex;
       GridView1.DataBind();      
    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:GridView ID="GridView1" runat="server"
            AutoGenerateColumns="False" DataKeyNames="id" OnRowEditing="GridView1_RowEditing">
            <Columns>
                <asp:CommandField ShowEditButton="true" />
                <asp:BoundField DataField="id" />
                <asp:BoundField DataField="ParentItem" />
            </Columns>
        </asp:GridView>
    </div>
    </form>
</body>
</html>


e prova a controllare il comportameno applicando o meno il ViewState, o gestendo o meno l'evento.

nel mio esempio, senza il scrivere codice nel RowEditing e disabilitando il ViewState "sparisce tutto"

ciao marco

Modificato da nostromo il 04 luglio 2008 17.11 -

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

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

Vai a:
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.


maltra - 811 pt
vladimiro - 562 pt
fabrica - 180 pt

Ultimi vincitori: fabrica, vladimiro, PeppeDotNet

Iscriviti anche tu e raccogli punti. Questo mese in palio VS 2008 + Windows Server 2008, ReShaper e 1 ebook!



COMMUNITY
ULTIMI MESSAGGI


IN EVIDENZA
MISC
Powered by .db Forums