本篇介紹PlaceHolder(WebForm的容器物件)、Page物件、FindControl方法、Request類。
新增Button與TextBox於PlaceHolder :
protected void Page_Load(object sender, EventArgs e)
{
Button Button1 = new Button();
this.PlaceHolder1.Controls.Add(Button1);
Button1.ID = "Button_DynaAdd";
Button1.Text = "程式裡頭,動態產生的按鈕";
TextBox TextBox1 = new TextBox();
this.PlaceHolder1.Controls.Add(TextBox1);
TextBox1.ID = "TextBox_DynaAdd";
TextBox1.Text = "程式裡頭,動態產生的文字輸入方塊";
}
尋找指定UI :
// 請新增相對應的UI元件於表單中,在撰寫該事件
protected void Button2_Click(object sender, EventArgs e)
{
// 透過 FindControl抓取 PlaceHolder裡面的「子控制項」
TextBox getTextBox = new TextBox();
getTextBox = (TextBox)this.PlaceHolder1.FindControl("TextBox_DynaAdd");
Label1.Text = getTextBox.Text;
// 當您修改「動態產生的Text」身體裡面的值,再按下一次按鈕
// 還能抓到您修改後的文字(值)嗎?
Label2.Text = (String)Request[getTextBox.UniqueID];
Label3.Text = Request[(FindControl("TextBox_DynaAdd") as TextBox).UniqueID] as string;
}
ASP.NET Request 物件說明 :
- 在網頁中若使用者丟出了請求,這些頁面資訊都可以獲取
- 如何獲取瀏覽器丟回的資訊呢?? ASP.NET創造了Request這個類別,封裝了請求的資訊轉換成物件
如 : 網址、網址剖析、UI元件、標籤、特定Value等 ....繁多。
Request.Params : 是所有post和get傳過来的值的集合
Request.Form : 是取post傳值
Request.QueryString : 是get傳過来的值
Request[ui.ID or ui.UniqueID] : 針對UI元件的值
Request.Form : 是取post傳值
Request.QueryString : 是get傳過来的值
Request[ui.ID or ui.UniqueID] : 針對UI元件的值
多多指教!! 歡迎交流!!
你不知道自己不知道,那你會以為你知道