سؤال

وأنا باستخدام دوتنت 4.9.2 وأنا على التوالي الى قضية غريبة.

ولدي بطرق عرض متعددة في وحدة أنني النامية، وفي واحدة من وجهات النظر لديهم GridView منضم إلى ObjectDataSource.

في وجهة نظر منفصل، ولدي عدة أزرار من شأنها تبديل SelectMethod من ObjectDataSource في رأي 2nd و ثم تعيين هذا العرض النشطة. أن كل يعمل بشكل جيد، حتى يتم فرز الشبكة على عرض 2ND - الذي يؤدي إلى إعادة النشر والمواد المستنفدة للأوزون يختار بطريقة أو بأخرى حتى SelectMethod الأصلي. وSelectParameters التي تم تعيينها في نفس الوقت في التعليمات البرمجية الخلفية عصا بالرغم من ذلك.

ويبدو لي أن ObjectDataSource يجب أن تذكر SelectMethod في حالة العرض، لا ينبغي ذلك؟

<asp:ObjectDataSource runat="server" ID="MyObjectDataSource" SelectMethod="MyFirstSelectMethod" TypeName="Whatever"></asp:ObjectDataSource>

protected void Button1_Click(object sender, EventArgs e)
{
    MyObjectDataSource.SelectMethod = "MyNewMethod";
    // more code here to change the parameters as well...
    MyMultiView.SetActiveView(MyView2);
}

وعند تشغيل هذا الزر نقرة، تعرض الشبكة كما هو متوقع. عند النقر على أحد رؤوس الأعمدة لGridView وكسر في تحميل الصفحة لتفقد SelectMethod، فقد عادت إلى واحد أعلن في الترميز.

وأي اقتراحات بشأن ما يمكن أن تكون مشكلتي هنا؟

هل كانت مفيدة؟

المحلول 2

وانتهى بي المطاف إلى العمل على حل المشكلة فقط باستخدام خاصية الصفحة لعقد selectmethod، ومن ثم إعادة على كل إعادة النشر ...

protected string MySelectMethod
{
    get
    {
        return (string)ViewState["MySelectMethod"] ?? MySearchResultsDataSource.SelectMethod;
    }
    set
    {
        ViewState["MySelectMethod"] = value;

        MySearchResultsDataSource.SelectMethod = value;

    }
}

protected void Page_Load(object sender, EventArgs e)
{
    if (IsPostBack)
    {
        MySearchResultsDataSource.SelectMethod = MySelectMethod;
    }
}

protected void MyButton_Click(object sender, EventArgs e)
{
    MySelectMethod = "MyNewMethod";
}

لا يزال غير متأكد من السبب في أن دعامة SelectMethod لا عصا على إعادة النشر في السلاح النووي. أنا متأكد من هذا عملت بشكل جيد بالنسبة لي في مشاريع asp.net على التوالي في الماضي ...

نصائح أخرى

وانا التخمين أن تتأكد من أنك لا إعادة .SelectMethod عند تحميل الصفحة؟

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