條件敘述:
前台頁面有數個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 = "請輸入資料";
}
}
}
}
留言列表