هل من الممكن أن يرسل __dopostback () طلب الحصول على الحصول على؟

StackOverflow https://stackoverflow.com/questions/2456874

سؤال

أواجه مشكلة مع Telerik Radgrid ، أريد تمكين اختيار صف متعدد. أريد أيضًا الذهاب إلى الخادم كلما تم تحديد صف أو إلغاء تحديده. لقد قمت بإنشاء وظيفة JavaScript للتعامل مع الأحداث الجانبية للعميل في الشبكة (OnRowsected ، و onRowdeselected). الوظائف تبدو هكذا:

 function onOperationRowSelected(sender, eventArgs) {
            __doPostBack("<%=myControl.ClientID %>", "rowSelected:" + eventArgs.get_itemIndexHierarchical());
        }

الوظيفة الأخرى متشابهة للغاية ، والفرق الوحيد هو أنه يرسل السلسلة "ROWDeselcted" بدلاً من "Rowselected".

على page_load ، أتحقق لمعرفة ما إذا كان الطلب هو طلب نشر باستخدام "isPostback" وإذا كان الأمر كذلك ، أتحقق من معرفة ما إذا كان ذلك عبارة عن خطوط تم اختيارها أو تم اختيارها.

مشكلتي هي عندما أقوم بتحديد أولي RAW على شبكتي ، يحدث طلب نشر (متوقع) ، ومع ذلك ، عندما أقوم بتحديد الصف الثاني ، يتم إصدار طلب الحصول على ، والذي سيؤدي (من الواضح) إلى إرجاع ISPostback FALSE.

ماذا أفتقد هنا؟


تعديل: لقد راجعت للتو كائن الطلب ووجدت أن قيمة خاصية httpmethod هي "post". كيف يأتي طلب نشر HTTP وإرجاع isPostback False ؟؟

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

المحلول

هل أنت متأكد من أن طلب الحصول على حجة الحدث الصحيحة؟
أعتقد أن هناك شيء آخر يقدم طلب الحصول على. ربما بعض سحر Ajax بواسطة تلك الشبكة ، أو بعض الموارد أو مكالمة Ajax Pagemethod أو إعادة كتابة عنوان URL أو شيء من هذا القبيل.

هل اسم الصفحة default.aspx أو شيء على حد سواء؟ في بعض الأحيان ، في بعض المتصفح (لا يمكن تذكر التفاصيل) الحصول على صورة أو نحو ذلك (لا يمكن تذكر الموقف الدقيق) يجعل المتصفح يضرب أيضًا عنوان URL "نفس" ، الذي يفتح الصفحة الافتراضية.

تحقق من الطلب باستخدام Firebug وشاهد ما يرويه.

نصائح أخرى

الوظيفة تحترم عمل <form>. إليك ما يفعله __dopostback:

function __doPostBack(eventTarget, eventArgument) {
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
        theForm.__EVENTTARGET.value = eventTarget;
        theForm.__EVENTARGUMENT.value = eventArgument;
        theForm.submit();
    }
}

لذلك سيفعل كل ما يتم تعيين النموذج للقيام به ، وهذا عادة ما يتم نشره في ASP.NET.

هل هو ممكن؟ نعم ، بالتأكيد ، لماذا يحدث في حالتك لست متأكدًا.

دون رؤية العلامات التي تنشئها الشبكة ، أفترض أنها تستخدم رابطًا مع معالج نقرة JavaScript الذي يتم تطبيقه للقيام بالبريد. أعتقد أن الجاني الأكثر ترجيحًا ، إذن ، هو خطأ JavaScript الذي يمنع المعالج من إطلاق النار ، والذي يمنحك السلوك الافتراضي للمذيع الذي يتم تطبيق المعالج إليه ، في هذه الحالة. أفضل نصيحة يمكنني تقديمها لك هي النظر إليها في Firefox/Firebug ومعرفة ما إذا كانت هناك أي أخطاء تظهر في وحدة التحكم.

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

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