مراقبة المعالج في ASP.NET - كيفية تعيين الخاصية NextButton Causesvalidation إلى false
سؤال
ولقد حاولت وضع عليه في قانون وأيضا في الترميز ولكن عند النقر فوق زر التالي، الصفحة يتم التحقق من صحة، وأريد أن prevnt هذا من الحدوث والسيطرة متى يجب أن يحدث التحقق من صحة، وعندما لا. سيكون موضع تقدير أي اقتراحات أو نماذج التعليمات البرمجية
المحلول
وأسهل طريقة للقيام بذلك سيكون لإزالة جميع الضوابط المصادقة من WizardStep
الذي التحقق من الصحة ليتم تخطي.
ولكن، إذا كنت بحاجة إلى وظائف متقدمة، وسوف تحتاج إلى تعيين الخاصية CausesValidation
من التالي / أزرار السابق في StepNavigationTemplate
يدويا. معالج تحكم ASP.NET لا يعرض الخصائص التي تتيح لك الوصول إلى عناصر التحكم في NavigationTemplates مباشرة، كما أنه لا يعرض أية خصائص للوصول إلى NavigationTemplate. لذا، نحن بحاجة إلى الاعتماد على أسلوب FindControl
للقيام بكل البحث.
وقطعة مفيد للمعلومات التي وجدت أثناء بحثه هذه المشكلة يتمثل في أنه في وقت تشغيل StepNavigationTemplate
هو من نوع ASP.NET الداخلي دعا StepNavigationTemplateContainer
ولها ID "StepNavigationTemplateContainerID". هذا مكنني من تحديد موقع StepNavigationTemplate
وبالتالي، فإن زر التالي.
والرمز التالي:
protected void Wizard1_ActiveStepChanged(object sender, EventArgs e)
{
int step = Wizard1.ActiveStepIndex;
// Disable validation for Step 2. (index is zero-based)
if (step == 1)
{
ToggleValidation(false);
}
else // Enable validation for subsequent steps.
{
ToggleValidation(true);
}
}
private void ToggleValidation(bool flag)
{
WebControl stepNavTemplate = this.Wizard1.FindControl("StepNavigationTemplateContainerID") as WebControl;
if (stepNavTemplate != null)
{
Button b = stepNavTemplate.FindControl("StepNextButton") as Button;
if (b != null)
{
b.CausesValidation = flag;
}
}
}