سؤال

وأواجه قليلا من المتاعب الفرز من سيناريو الترحيل مع أي أنا لا يمكن الحصول على شيء الدموي GridView لعرض الصفحة، 2، 3، 4، الخ.

ولدي الشبكة كود العرض التالي

<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

والربط كان في الواقع على ما يرام. تم فرز هذه النهاية مضيفا في المفتاح الأساسي (أي أنا حقا يجب أن implmented في المقام الأول!)

وحتى إذا كان هناك من يقرأ هذا، لا يمكن الحصول gridview على الصفحة من خلال objectdatasource، تأكد أن لديك مفتاح أساسي!

نصائح أخرى

وهذا هو حيث الامور مثيرة للاهتمام! أنا باستخدام مصدر البيانات 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;
}

ومحمية الفراغ btSearch_Click (كائن المرسل، EventArgs ه)     {

    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 من س، أتلقى هذه الرسالة مقرف قليلا:

خطأ في الخادم في '/ onlineReportingFUNCTIONING' التطبيق.

وهذا المزود يدعم تخطي () فقط أمر على الاستفسارات تعود كيانات أو التوقعات التي تحتوي على كافة الأعمدة الهوية، حيث الاستعلام هو جدول واحد الاستعلام (الانضمام غير)، أو هو مميز، باستثناء، تتقاطع، أو الاتحاد ( لا CONCAT) العملية.

ما هذا حول بعد ذلك؟!

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top