ASP.NET動態生成按鈕(轉)

ASP.NET動態生成TextBox並獲取其值

動態生成的文本框,生成的是HTML控件,所以獲取文本框的值  控時,要注意獲取的方法,不同時間獲取的方法不同.(頁面一架載完時的值 和 控件的原有值改變時  兩種情況)

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        //創建一個文本框
        TextBox tbxName = new TextBox();
        tbxName.ID = "tbxName";
        tbxName.Text = "OK";
        this.form1.Controls.Add(tbxName);

        //創建一個按鈕
        Control c = ParseControl("");
        this.form1.Controls.Add(c);

        //創建一個按鈕事件    這部份只能放在Page_Load之前。。給按鈕添加事件。
        Button myButton = (Button)Page.FindControl("myButton");
        myButton.Command += new CommandEventHandler(this.myButton_Click);

    }

    protected void myButton_Click(Object sender, EventArgs e)
    {
        //獲取文本框的值
          由於動態生成的文本框,生成的是HTML控件,所以獲取文本框的值只能用

            string strTxtValue=Request.form["txtName"].toString()

來獲取,而不能用

            TextBox tb=(TextBox)this.page.form.FindControl("txtName")

            string strTxtValue=tb.Text

來獲取(親身體驗獲取不到更改後的值),因爲生成的是HTML控件,而不是Web控件,tb獲取的值是最初的值
    }
}

另:

 protected void btnSave_Click(object sender, EventArgs e)

{

        ArrayList al = new ArrayList();
        al.Add(txtAname1);        //txtAname1 爲TextBox 的 id ,代表 TextBox 類型,不是字符串
        al.Add(txtAname2);
        al.Add(txtAname3);
        al.Add(txtAname4);

        string[] txtid = { "txtAname1", "txtAname2", "txtAname3", "txtAname4" };

       #region 修改


            //問題
            mTQI = bTQI .GetModel(int.Parse(Request.QueryString["ID"]));
            mTQI.QName = Request.Form["txtQname"].ToString().Trim();
            mTQI.Qcreatetime = DateTime.Parse(Request.Form["txtQcreatetime"].Trim());
            mTQI.Qa = Request.Form["txtQa"].Trim();
            mTQI.Qislist = Request.Form["DropDownList1"].Trim();
            //mTQI.Qcreatetime = DateTime.Parse(txtQcreatetime.Text.Trim());    //這三行獲取不到改變的值
            //mTQI.Qa = txtQa.Text;
            //mTQI.Qislist = DropDownList1.SelectedValue;

           //答案

            List lTai2 = new List();
            DataSet ds = bTAI.GetList("aQid="+Request.QueryString["ID"]+"");
            lTai2 = bTAI.DataTableToList(ds.Tables[0]);
            for (int i = 0; i < lTai2.Count;i++ )
            {
                //TextBox txt = (TextBox)FindControl("txtAname1");           
                string st = Request.Form[txtid[i].ToString()].ToString();
                lTai2[i].Aname = st;
            }
           
            //修改
            numTQ = bTQI.Update(mTQI);
            for (int i = 0; i < lTai2.Count; i++)
            {
                bTAI.Update(lTai2[i]);
            }
            if (numTQ > 0)
            {
                btnSave.Enabled = false;
            

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章