Pregunta

Tengo algunos problemas para resolver el escenario de paginación con una vista de cuadrícula, es decir, no puedo hacer que lo sangriento muestre la página, 2, 3, 4, etc.

Tengo el siguiente código de vista de cuadrícula

<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 lo siguiente

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

Ahora, obtengo una " TargetinvocationException no fue manejada por el código de usuario "

Siendo un novato, esto está más allá de mis capacidades actuales y me ha confundido un poco. ¿Cómo hago para vincular mi vista de cuadrícula correctamente para permitir que la paginación funcione correctamente?

¿Fue útil?

Solución 3

La encuadernación estuvo realmente bien. Esto finalmente se resolvió agregando una clave primaria (¡lo que realmente debería haber implicado en primer lugar!)

Entonces, si alguien está leyendo esto, no puede obtener su vista de cuadrícula en la página a través de una fuente de datos de objeto, ¡asegúrese de tener una clave principal!

Otros consejos

¡aquí es donde las cosas se ponen interesantes! Estoy usando una fuente de datos 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 se genera a través de esto:

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

vacío protegido btSearch_Click (remitente de objeto, 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();
    }

Sospecho que tengo demasiadas ataduras pateando ... como puedes ver por mi código, este es un territorio nuevo para mí, ¡así que sé amable con el abuso!

Ok, he leído algunos lugares que necesito incluir en la fuente de datos, así que ahora tengo el siguiente código

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

Ahora, cuando construyo la página, funciona bien, pero cuando llego a la página 2 de x, recibo este pequeño mensaje desagradable:

Error del servidor en la aplicación '/ onlineReportingFUNCTIONING'.

Este proveedor admite Omitir () solo sobre consultas ordenadas que devuelven entidades o proyecciones que contienen todas las columnas de identidad, donde la consulta es una consulta de tabla única (sin unión), o es una Distinción, Excepción, Intersección o Unión ( no Concat) operación.

¿Qué es eso entonces ?!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top