Domanda

Ho un po 'di problemi a sistemare lo scenario di paging con una griglia, ovvero non riesco a far sì che la cosa sanguinosa mostri pagina, 2, 3, 4, ecc.

Ho il seguente codice vista griglia

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
               style="z-index: 1; left: 20px; top: 440px; position: absolute; height: 133px; " 
        AllowPaging="True" AllowSorting="True" Font-Size="Small" 

        PageSize="2" onpageindexchanging="GridView1_PageIndexChanging">
        <Columns>

Con il seguente

  protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
    GridView1.PageIndex = e.NewPageIndex;
    GridView1.DataBind();
}

Ora sto ricevendo un " TargetinvocationException non è stato gestito dal codice utente. "

Essendo un principiante, questo va oltre le mie attuali capacità e mi ha confuso un po '. Come posso associare correttamente il mio gridview per consentire il corretto funzionamento del paging?

È stato utile?

Soluzione 3

La rilegatura andava bene. Questo è stato finalmente risolto aggiungendo una chiave primaria (che avrei dovuto impiantare in primo luogo!)

Quindi, se qualcuno sta leggendo questo, non è possibile ottenere la visualizzazione della griglia sulla pagina tramite una fonte di oggetti, assicurarsi di avere una chiave primaria !!!

Altri suggerimenti

questo è dove le cose si fanno interessanti! Sto usando un'origine dati linq:

<asp:LinqDataSource ID="**lqPackWeights**" runat="server"
        ContextTypeName="ORWeightsDataClassesDataContext" 
        Select="new (UnitId, UnitDescription, PackagingTypeCode, UnitWeight, WeightUnitCode, RecycledContent, IsBiodegradable, Recyclability, RevisionSourceCode, RevisionDate, ExtendedMaterialName, MaterialText, WeightStatus, ProductPercentage, UnitUserfield1, UnitUserfield2, IDDesc, MaterialLevel)" 
        TableName="tblOnlineReportingCOMPLETEWeights" Where="IDDesc == @IDDesc">
    </asp:LinqDataSource>

lqPackWeights generato attraverso questo:

private object GetMaterialData(string MemberKey, string MaterialType, string MaterialLevel, int Count)
{
    ORWeightsDataClassesDataContext db = new ORWeightsDataClassesDataContext();
    var query = db.tblOnlineReportingCOMPLETEWeights
                .Where(x => x.MaterialLevel == MaterialLevel && x.MaterialText == MaterialType && x.MemberId == MemberKey)
                .OrderByDescending(x => x.ProductPercentage).Take(Count);
    return query;
}

void protetto btSearch_Click (mittente oggetto, EventArgs e)     {

    lqPackWeights.WhereParameters.Clear();
    ControlParameter cp = new ControlParameter();
    cp.Type = TypeCode.String;


    if (radBuyer.Checked)
    {
        cp.ControlID = "ddlProd";
        cp.PropertyName = "SelectedValue";
        cp.Name = "IDDesc";
        lqPackWeights.WhereParameters.Add(cp);
        GridView1.DataSourceID = "lqPackWeights";
        GridView1.DataBind();
    }

    else if (radProd.Checked)
    {
        cp.ControlID = "tbxProdAC";
        cp.PropertyName = "Text";
        cp.Name = "IDDesc";
        lqPackWeights.WhereParameters.Add(cp);
        GridView1.DataSourceID = "lqPackWeights";
        GridView1.DataBind();
    }

Sospetto di avere troppi vincoli a calci in giro ... come puoi dire dal mio codice, questo è un nuovo territorio per me, quindi sii gentile con l'abuso!

Ok, ho letto alcuni punti che devo gettare nell'origine dati, quindi ora ho il seguente codice

 protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
    GridView1.PageIndex = e.NewPageIndex;
    GridView1.DataSourceID = "lqPackWeights";
}

Ora quando creo la pagina, funziona bene, ma quando premo la pagina 2 di x, ricevo questo brutto piccolo messaggio:

Errore del server nell'applicazione '/ onlineReportingFUNCTIONING'.

Questo provider supporta Skip () solo su query ordinate che restituiscono entità o proiezioni che contengono tutte le colonne di identità, in cui la query è una query a tabella singola (non unita) oppure è Distinct, Except, Intersect o Union ( non Concat).

Di che si tratta allora ?!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top