none
如何驗證calendar元件? RRS feed

  • 問題

  • 如何驗證calendar元件?
    可以用Validator元件嗎?
    我有試著用Validator但是在ContrltoValidator這邊沒有看到calendar控制項
    請問怎麼作比較恰當?
    2006年4月12日 下午 12:06

解答

  • 方法一,Calendar直接給SelectedDate預設值

    方法二,延續剛剛做法的修改,你拉一個TextBox及一個RequiredValidator到介面上,然後在剛剛的Event裡寫RequiredValidator設到TextBox上,並把TextBox.Visible = false;

    Calendar1_SelectionChanged(...)
    {
        this.TextBox2.Text = this.Calendar1.SelectedDate.ToShortDateString();
        if(日期在範圍外)
        {
            Label1.Visible = true; //Label1為顯示訊息
            this.Button1.Enabled = false;    //button1為送出form的button
         }
         else
         { 
             Label1.Visible = false;
            this.Button1.Enabled = true;
          }
    }
    然後,回傳值直接去捉TextBox裡的日期,而Calendar則只是選擇日期工具而已。

    方法三,用一個hidden欄位,也是選擇時把值放入,寫Client script去直接抓hidden值做範圍或是有無值的判斷,都在Client做掉。

    2006年4月13日 上午 01:19

所有回覆

  • 不能用。

    為什麼要對Calendar用Validator?(日期範圍?)

    而且因為不是人工輸入,所以好像也沒什麼必要用Validator吧?

    如果你要做日期範圍的話,那可以用Calendar1_SelectionChanged中去寫像是給使用者一些錯誤訊息如show出文字在Label中,也是可以做到Validator相同的事。

    Calendar1_SelectionChanged(...)
    {
        if(日期在範圍外)
        {
            Label1.Visible = true; //Label1為顯示訊息
            this.Button1.Enabled = false;    //button1為送出form的button
         }
         else
         { 
             Label1.Visible = false;
            this.Button1.Enabled = true;
          }
    }

    2006年4月12日 下午 08:17
  • 感謝您的回覆!
    那請問要用什麼語法判斷在寫入資料庫以前Calendar欄位有沒有被選取?
    如果沒有,如何可以讓填表的頁面停留在該Calendar上(要使用.focus這樣的屬性?)
    而不直接進行寫入資料庫?


    2006年4月12日 下午 09:28
  • 方法一,Calendar直接給SelectedDate預設值

    方法二,延續剛剛做法的修改,你拉一個TextBox及一個RequiredValidator到介面上,然後在剛剛的Event裡寫RequiredValidator設到TextBox上,並把TextBox.Visible = false;

    Calendar1_SelectionChanged(...)
    {
        this.TextBox2.Text = this.Calendar1.SelectedDate.ToShortDateString();
        if(日期在範圍外)
        {
            Label1.Visible = true; //Label1為顯示訊息
            this.Button1.Enabled = false;    //button1為送出form的button
         }
         else
         { 
             Label1.Visible = false;
            this.Button1.Enabled = true;
          }
    }
    然後,回傳值直接去捉TextBox裡的日期,而Calendar則只是選擇日期工具而已。

    方法三,用一個hidden欄位,也是選擇時把值放入,寫Client script去直接抓hidden值做範圍或是有無值的判斷,都在Client做掉。

    2006年4月13日 上午 01:19