close

條件敘述:

前台頁面有數個textbox,驗證textbox內容,將錯誤訊息給對應label

解決順序:

1.先取出頁面中有幾個控制物件數量作為迴圈數

2.判斷是否為textbox

3.判斷textbox內容(範例為是否空白)

4.我將textbox id 與 label id取名相同只有最後3個字不同,先抓出text id名

用Replace將3個字做替換

5.抓取Replace出來用FindControl找出label 控制作內容更換

實作語法:

『紅字為變數』

『綠字為註解』

-----------------------------------------------------------------------------------------

做一個checkfield的副程式

public void CheckField()
{

     因為有用master,必須確認要抓出哪一頁所有的物件
     ContentPlaceHolder PageNow;

     PageNow = (ContentPlaceHolder)Master.FindControl("ContentPlaceHolder1");

     跑回圈以抓出頁面所有控制物件為次數
          foreach(Control myTextBox in PageNow.Controls )
          {

     判斷,如果目前物件是textbox

               if(myTextBox is TextBox)
          {

      設定objTextBox變數代替原textbox id
               TextBox objTextBox = myTextBox as TextBox;

      判斷如果objTextBox.Text內容為空值
               if(string.IsNullOrEmpty(objTextBox.Text ))
               {

      將正在執行的textbox名取出,轉換成label字串名
                    string strLabelID = objTextBox.ID.ToString().Replace("Sys", "Msg");
      找出label字串名的control因為有分master跟內文,所以從頁面master下找內文,在找內文中的label字串轉成控制label
                    Control myControl = Page.Master.FindControl("ContentPlaceHolder1").FindControl(strLabelID);
                    Label myLabel = (Label)myControl;

      將錯誤訊息置入label.text中
                    myLabel.Text = "請輸入資料";
               }

          }
          }
}

arrow
arrow
    全站熱搜

    蕾夢 發表在 痞客邦 留言(0) 人氣()