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("<asp:Button Text = '按我' ID = 'myButton' runat = 'server' />");
        this.form1.Controls.Add(c);

        //创建一个按钮事件
        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<JC.Model.t_Answerinfo> lTai2 = new List<JC.Model.t_Answerinfo>();
            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;
                ClientScript.RegisterStartupScript(GetType(), "", "<script type='text/javascript'>alert('修改成功');window.location.href='VoteList.aspx';</script>");
            }
            #endregion
        }

 }

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值