ASP.NET WebForm - 頁面、容器、Request中尋找控制項

  • 13339
  • 0

本篇介紹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元件的值

 


多多指教!! 歡迎交流!!

你不知道自己不知道,那你會以為你知道