문제

나는 그리드 뷰로 페이징 시나리오를 분류하는 데 약간의 어려움이 있습니다.

다음 그리드보기 코드가 있습니다

<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

바인딩은 실제로 괜찮 았습니다. 이것은 기본 키를 추가하여 마침내 분류되었습니다 (처음에 실제로 묵시해야합니다!)

따라서 누군가이 글을 읽고 있다면 ObjectDatasource를 통해 GridView를 페이지로 가져갈 수 없습니다. 기본 키가 있는지 확인하십시오 !!!

다른 팁

이것은 일이 흥미로워지는 곳입니다! 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;
}

보호 된 void btsearch_click (Object Sender, 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";
}

이제 페이지를 만들 때 잘 작동하지만 X의 2 페이지를 누르면이 불쾌한 작은 메시지를받습니다.

'/onlineReportingFunctioning'응용 프로그램의 서버 오류.

이 공급자는 쿼리가 단일 테이블 (비 조인) 쿼리이거나, 교차 또는 유니언 (concat)을 제외하고는 쿼리가 단일 테이블 (비 조인) 쿼리 인 모든 ID 열이 포함 된 순서대로 순서대로 반환 엔티티 또는 예측을 지원합니다. 작업.

그때는 무엇입니까?!

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top