[ASP.NET] Validators放入MultiView內之驗證啟用後置程式碼

摘要:Validators放入MultiView內之驗證啟用後置程式碼

繼上篇: [Note]Validator在MultiView內, 當View的Visible為False時是無效的 

經過爬文... 將驗證寫在後端是有解的

例:

TextBox1,TextBox2, TextBox3 分別放入View1, View2, View3

RequiredFieldValidator1, RequiredFieldValidator2, RequiredFieldValidator3分別為TextBox之驗證控制項

將RequiredFieldValidator1之ValidationGroup設為"GroupView0", RequiredFieldValidator2的設為"GroupView1"...以此類推

(ValidationGroup屬性為了迴圈方便設成"GroupView0"~"GroupView2")

 

WarningLabel用來顯示錯誤訊息,


Button1_Click()的驗證程式碼 (Button1不在MultiView內) :


protected void Button1_Click(object sender, EventArgs e)
    {
        WarningLabel.Text = "";
        int curIndex = MultiView1.ActiveViewIndex; // 記錄目前的MultiView Index
        for (int i = 0; i < 3; i++)
        {
            MultiView1.ActiveViewIndex = i; // 啟用index為i的View
            Page.Validate("GroupView" + i.ToString()); // 驗證GroupView i
            if (!Page.IsValid)
            {
                WarningLabel.Text += "* TextBox" + (i + 1).ToString() + @"必填<br />"; // 驗證失敗-->印出錯誤訊息
            } // if not valid
        } // for

        MultiView1.ActiveViewIndex = curIndex;     // 回存MultiView Index
        if (!Page.IsValid)
        {
            return; // 驗證錯誤 --> return 不作任何事 (錯誤訊息已由WarningLabel印出)
        } // if

    }

 

結果:

 

參考網址:http://weblogs.asp.net/alnurismail/archive/2008/10/07/asp-net-validators-in-a-multiview.aspx

--

不斷學習,精進自我

Herbert Fang