Вопрос

У меня возникли небольшие проблемы с сортировкой сценария подкачки с помощью сетки, т. е. я не могу заставить эту чертову вещь показать страницы 2, 3, 4 и т. д.

У меня есть следующий код вида Grid

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

со следующим

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

Теперь я получаю " TargetinvocationException не было обработано кодом пользователя. "

Будучи новичком, это выходит за рамки моих нынешних возможностей и несколько смутило меня. Как правильно связать мой gridview, чтобы обеспечить правильную работу подкачки?

Это было полезно?

Решение 3

Переплет действительно был в порядке. В конце концов это было отсортировано путем добавления первичного ключа (который я действительно должен был бы реализовать в первую очередь!)

Так что, если кто-то читает это, не может получить свое представление сетки на странице через источник данных объекта, убедитесь, что у вас есть первичный ключ !!!

Другие советы

это то, где вещи становятся интересными! Я использую источник данных 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 генерируется через это:

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

protected void btSearch_Click (отправитель объекта, 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();
    }

Я подозреваю, что у меня слишком много привязок ... Как вы, вероятно, можете сказать из моего кода, это новая территория для меня, так что будьте осторожны со злоупотреблениями!

Хорошо, я прочитал несколько мест, которые мне нужно добавить в источник данных, поэтому у меня теперь есть следующий код

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

Теперь, когда я создаю страницу, она работает нормально, но когда я нажимаю на страницу 2 из x, я получаю это неприятное маленькое сообщение:

Ошибка сервера в приложении '/ onlineReportingFUNCTIONING'.

Этот провайдер поддерживает Skip () только для упорядоченных запросов, возвращающих сущности или проекции, которые содержат все столбцы идентификаторов, где запрос является запросом с одной таблицей (без объединения) или представляет собой Distinct, Except, Intersect или Union ( не согласен) операция.

Что это тогда?!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top