هل هناك طريقة أنيقة مقارنة مربع مربع نص باستخدام ASP.NET المصادقون?

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

  •  01-07-2019
  •  | 
  •  

سؤال

لدي Asp.Net مكرر الذي يحتوي على مربع نص و مربع.أنا بحاجة إلى إضافة التحقق من جانب العميل أن يتحقق عند تحديد مربع الاختيار ، النص لا يمكن أن يقبل فقط قيمة صفر أو فارغة.

أود أن استخدام واحد أو أكثر من Asp.Net's المصادقة ضوابط لتحقيق ذلك ، بشكل متسق عرض من جانب العميل الأخطاء (جانب الخادم أخطاء يتم معالجتها من قبل آخر الفرعي).

Asp:CompareValidator لا يبدو أن تكون مرنة بما يكفي لأداء هذا النوع من مجمع المقارنة ، لذلك أنا تركت النظر في Asp:CustomValidator.

المشكلة أنا على التوالي هو أن هناك لا يبدو أن هناك أي وسيلة لتمرير المعلومات المخصصة في وظيفة التحقق من صحة.هذه هي القضية لأن ClientIds من مربع و مربع نص غير معروفة بالنسبة لي في وقت التشغيل (كما انهم جزء من مكرر).

لذا...خياراتي يبدو أن:

  1. تمرير النص و الاختيار إلى CustomValidator بطريقة أو بأخرى (لا يبدو أن يكون ذلك ممكنا).
  2. العثور على النص من خلال جافا سكريبت على أساس الحجج التي مرت بها CustomValidator.هل هذا ممكنا ، مع ما ClientId يجري غامض ؟
  3. تنسى التحقق من الصحة تماما ، وتنبعث منها مخصص جافا سكريبت (السماح لي بالمرور على حد سواء ClientIds وظيفة مخصصة).

أي الأفكار حول ما يمكن أن يكون أفضل طريقة لتنفيذ هذا ؟

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

المحلول

أعتقد أن أفضل طريقة هي أن يرث BaseValidator في فئة جديدة ، وتمرير تلك المعرفات إلى التحكم الخاصة بك كما السمات.يجب أن تكون قادرة على حل معرفات داخل المصادقة دون معرفة كاملة من جانب العميل الهوية التي يتم إنشاؤها في وقت التشغيل.يجب أن تحصل على التحقق من صحة البيانات على الملقم أولا على العميل الثاني.

نصائح أخرى

يمكنك وضع CustomValidator داخل مكرر?إذا كان لا يمكنك إنشاء بشكل حيوي عند مكرر لا بد المستخدم FindControl()

protected MyDataBound(object sender, RepeaterItemEventArgs e) {
  (CheckBox)cb = (CheckBox)e.Item.FindControl("myCheckboxName");
  (TextBox)tb = (TextBox)e.Item.FindControl("myTextBox");
}

...أو شيء من هذا القبيل.فعلت رمز من أعلى رأسي.

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