asp.net中动态创建了一组textbox控件,由于控件动态,如何在后台写代码让textbox的值存入数据库?

如题所述

第1个回答  2011-09-27
简单,在后台通过request.form["name"]就行了!前提是页面的html控件必须设置name值
request.form["name"]找的是控件的name追问

具体怎么做啊,比方说我定义了一个string,将这个控件的text赋值给这个string,能给个具体的例子吗

追答

前台
点击保存后,在事件里写 string text = request.form["text"].toString();
这样就好了

本回答被提问者采纳
第2个回答  2011-09-27
textbox tv = new textbox();
tv.text = "你的值";
你用一个Panl 装载这些tv;panl.addControl(tv);
写个循环遍历这些控件 取到值;string di = tv.text.toString();
di 这个值就是你想要的值 最后在用自己的数据库添加方法 就行了
第3个回答  2011-09-27
1.创建容器
2.创建控件,并添加到容器
3.事件触发----遍历容器内的控件
4.取值,判断
5.插入

原始的服务器方式早被弃用。ajax无刷新才是正道。
1.创建容器(可以是div或者表格的tbody...)
2.jquery创建html文本形式标签,例如'"<input type=\"text\" class=\"addObj\" />",可以继续写。
3.追加到tbody
4.遍历tbody取值,可以根据class=\"addObj\" ,$('.addObj).each遍历,$(this).val()就是那个文本的值。当然可以有其他html标签
5.同样ajax调用后台插入方法,该方法要求static ,标签[WebMethod]
无刷新完成追问

要将值取出来运用到数据库的操作中,还是后台写比较好吧

追答

ajax无刷新
这个看你个人或者客户需求了

第4个回答  2011-09-27
首先Page_Load事件的IsPostBack部分要加入动态创建TextBox;
获取TextBox的值使用((TextBox)Page.FindControl("TextBox的id")).Text追问

生成页面后textbox变成input类型了,找不到了..........

追答

不是动态生成的,普通的TextBox生成页面后也会变成input。
前台代码:

后台代码:
protected void Page_Load(object sender, EventArgs e)
{ //下面3行代码不能放到! IsPostBack里面。
TextBox txt = new TextBox();
txt.ID = "test";
this.PlaceHolder1.Controls.Add(txt);
}
protected void Button2_Click(object sender, EventArgs e)
{
TextBox txt = (TextBox)this.PlaceHolder1.FindControl("test");
Response.Write(txt.Text);
}

第5个回答  2011-09-27
动态创建:
case "CD":
MyWebTextBox mwtb = new MyWebTextBox();
mwtb.InputType = TextType.date;
mwtb.IsDisplayTime = false;
mwtb.CssClass = "editbox";
mwtb.ID = dt.Rows[ICell]["CT_COL_SCRIPT"].ToString() + "^" + dt.Rows[ICell]["CT_COL_OPERATOR"].ToString() + "^" + dt.Rows[ICell]["CT_COL_RELATION"].ToString();
NewC2.Controls.Add(mwtb);
break;
获得控件值:
StrValue = ((TextBox)TableView.Rows[i].Cells[j].Controls[0]).Text.ToString();
if (!string.IsNullOrEmpty(StrValue))
{
StrSql += StrID[0] + " " + StrID[1] + " '" + '%' + StrValue + '%' + "' " + StrID[2] + " ";
}
else
{
StrSql += StrID[0] + " like '%' " + StrID[2] + " ";
}追问

老大,你是不是直接从写的一大段代码复制过来的啊,我只是想知道在后台如何找到动态生成控件的值

追答

((TextBox)TableView.Rows[i].Cells[j].Controls[0]).Text.ToString();
这个就是获得控件的值啊......
我是怕你找不到原控件如何生成的,才把这个脚本放上去的~

说白了就是你找到你原来的控件,取text就可以了
我是动态生成textbox控件,放在table中,然后从table中找到控件,取出text内容....

相似回答