آسيا والمحيط الهادئ: RadioButtonList تزال مشاركة الرجوع الى الخادم حتى عندما فشل التحقق من صحة العميل؟
-
06-07-2019 - |
سؤال
ويرتبط هذا الاستعلام إلى هذا واحدة سألت في الامس. لدي قائمة زر الاختيار على صفحة asp.net بلدي محددة كما يلي:
<asp:RadioButtonList ID="rdlSortBy" runat="server" RepeatDirection="Horizontal" RepeatLayout="Flow" AutoPostBack="True" >
<asp:ListItem Selected="True">Name</asp:ListItem>
<asp:ListItem>Staff No</asp:ListItem>
</asp:RadioButtonList>
في جانب العميل، أنا أفعل التصديقات التالية:
rdlSortBy.Attributes("onclick") = "javascript:return prepareSave() && prepareSearch();"
والمشكلة هي أن التحقق من صحة جافا سكريبت يعمل كما هو متوقع. يتم عرض رسالة وأتوقع أن تبقى على الصفحة حتى المستخدم حفظ التغييرات، بدلا من الصفحة يتم نشر ذهابا وفعال أنا فقدان تغييرات غير محفوظة.
وماذا يمكن أن يحدث خطأ؟
المحلول
وأنا ثابت هذا، وكانت المشكلة التي كنت ربط "عند _ النقر" من RadioButtonList بدلا من ذلك على أزرار الفردية.
وهذا هو الإصلاح:
rdlSortBy.Items(0).Attributes("onclick") = "javascript:return isDirtied() && prepareSearch();"
rdlSortBy.Items(1).Attributes("onclick") = "javascript:return isDirtied() && prepareSearch();"
نصائح أخرى
والرمز OnClick
تستخدمه ل"صحة" يتم تشغيل وثم رمز الذي المشاركات التي ظهر الشكل الذي يضخ عنصر التحكم نفسه يتم تشغيل.
وتحتاج إلى اعتراض هذه العملية إعادة النشر ومنعه قبل أن ظائف شكل من جانب العميل. وأفضل طريقة للقيام بذلك يكون مع CustomValidator
وتحديدا "ClientValidationFunction" الملكية. وهذا سوف يسمح جافا سكريبت للإشارة إلى أن فترة ما بعد الظهر لا يجب أن تحدث بسبب خطأ في التحقق من الصحة.