مراقبة المعالج في ASP.NET - كيفية تعيين الخاصية NextButton Causesvalidation إلى false

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

  •  03-07-2019
  •  | 
  •  

سؤال

ولقد حاولت وضع عليه في قانون وأيضا في الترميز ولكن عند النقر فوق زر التالي، الصفحة يتم التحقق من صحة، وأريد أن 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;
    }
  }
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top