动态创建控件后如何取值

代码如下:using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

public partial class _Default : System.Web.UI.Page
{

protected void btnSubmit_Click(object sender, EventArgs e)
{

SqlConnection conn = DB.createcon();
conn.Open();
string cmdText = "insert into [Items] (Item_Content,Item_IsRadio,Theme_Id) values (@content,'" + this.rbtnl.Text + "','"+this.ddlTheme.SelectedValue+"') SELECT @@IDENTITY AS 'Id'";
SqlCommand mycmd = new SqlCommand(cmdText, conn);
SqlParameter paraCon = new SqlParameter("@content",SqlDbType.VarChar,1000);
paraCon.Value = this.txtContent.Text;
mycmd.Parameters.Add(paraCon);
int Id=Convert.ToInt32(mycmd.ExecuteScalar());
int Num = Convert.ToInt32(this.txtNum.Text);
for (int i = 1; i <= Num; i++)
{
string cmdChoAddtext = "insert into [Choice] (Cho_Content,Item_Id) values(@content,'"+Id+"')";
SqlCommand cmdChoAdd = new SqlCommand(cmdChoAddtext, conn);
SqlParameter paraCho = new SqlParameter("@content", SqlDbType.VarChar, 100);
paraCho.Value=((TextBox) this.Panel1.FindControl("txtCho"+i.ToString())).Text;//此处报错为为将对象实例化,也就是说没找到该控件
cmdChoAdd.Parameters.Add(paraCho);
cmdChoAdd.ExecuteNonQuery();
}
conn.Close();
}

protected void Page_Load(object sender, EventArgs e)
{

}

protected void btnCre_Click(object sender, EventArgs e)//单击这个按钮我创建出Num个TextBox
{
int Num = Convert.ToInt32(this.txtNum.Text);
for (int i = 1; i <= Num; i++)
{
TextBox txtCho = new TextBox();
this.Panel1.Controls.Add(txtCho);
txtCho.ID = "txtCho" + i.ToString();
Response.Write(txtCho.ID);

}

}
}
现在问题就是在我btnCre_Click动态创建TextBox之后,当单击btnSubmit_Click中想取出动态创建的控件中的值插入数据库,我该怎么找到该控件,然后再取出该值呢???谢谢大家了!!!急!

form的method为post时或没有设置时用Request.Form["控件ID"]就是了
form的method为get时用Request.QueryString["控件ID"]
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-07-27
取出txtCho 得ClientID然后存放起来
这个ID在Request里边有对应得值
Response[ClientID]就可以获得

ClientID你可以把这个存放在ViewStatus里边然后下去点按钮可以拿到ClientID
第2个回答  2008-07-29
问题解决!!
有点麻烦,不知道你还需要不
你问的这个问题还真有点不好搞
上代码:
//声明静态List<TextBox>对象的array
private static System.Collections.Generic.List<TextBox> array = new System.Collections.Generic.List<TextBox>();
protected void Page_Load(object sender, EventArgs e)
{
//如果页面回调
if (IsPostBack)
{
if (array.Count > 0)//如果array包含有值
foreach (TextBox tb in array)
Panel1.Controls.Add(tb);//在Panel1上加上TextBox的对象
}
else//页面第一次加载先清一下array
{
array.Clear();
}
}
protected void Button1_Click(object sender, EventArgs e)
{
array.Clear();//清空
Panel1.Controls.Clear();//panel也要清
for (int i = 0; i < 10; i++)
{
TextBox tb = new TextBox();
tb.ID = "TextBox" + i.ToString();
array.Add(tb);
Panel1.Controls.Add(tb);
}
}
protected void Button2_Click(object sender, EventArgs e)
{
for (int i = 0; i < 10; i++)
{
TextBox tb = Panel1.FindControl("TextBox" + i.ToString()) as TextBox;
if (tb != null)
{
Response.Write(tb.Text);
}
}
}

动态创建控件后如何取值
form的method为post时或没有设置时用Request.Form["控件ID"]就是了 form的method为get时用Request.QueryString["控件ID"]

mfc 动态创建的 CListCtrl 如何获取选中行的信息 要响应什么消息?_百度...
动态创建的和通过拖控件的CListCtrl一样,通过添加LVN_ITEMCHANGED消息响应,可以实现当前选中行的信息。如果是动态创建,IDC_LIST1是你动态创建的ListCtrl的ID。ON_NOTIFY(LVN_ITEMCHANGED, IDC_LIST1, OnLvnItemchangedList1)

JS动态创建的file控件,PHP 怎么获取上传的文件?
首先,你的file控件要放到form表单内,其次,每个file控件的name属性应该不同。下面是我修改后的: var x=1;\/\/=== \/\/功能:在表单中input file控件 \/\/参数:parentID---要插入input file控件的父元素ID \/\/ inputID---input file控件的ID \/\/=== function createInput(parentID,inputFileID){...

C# winform动态添加控件获取值问题
{ string Str = ((Label)c).Text;string Stt = ((RadioButton)c).Text;list.Add(Str);list.Add(Stt);} 这是有问题啊,得分别判断是label还是RadioButton 然后再添加到list中。而且一次只能循环一个控件也不能一次就能把两中同时都能添加进去啊 应该这样改吧,你参考一下:if (c is Label){...

C#怎么给动态生成的控件(Textbox)赋值。
将 tbox.Location = new System.Drawing.Point(14, 92);tbox.Size = new System.Drawing.Size(96,21);tbox.Name = "tbox";等生成控件的代码写到 private void tbox_TextChanged(object sender, EventArgs e){ \/\/动态生成tbox代码位置 comboBox1.Items.Add(tbox.Text);} ...

c#如何获取动态添加的控件名
foreach (Control ctl in controls)\/\/找到当前选项卡里的WebBrowser { if (ctl.GetType() = typeof(WebBrowser)){ currentBrowser = ctl as WebBrowser;} } currentBrowser.Navigate(this.textBox1.Text);\/\/导航你要的URL } 楼上的方法虽然行的通,但对控件ID依赖过大,ID变更(或者说生成ID...

怎么动态的取控件id
这样写是不行的. 要先在for循环里面new一个DropDownList ,然后DropDownList ddl_new = page.FindControl("DropDownList+"i);然后循环取到ddl_new的text 相加

动态添加的控件,刷新后如何保存状态
用ViewState试试 ViewState.Add(string key,object value);取值时用 ViewState["key"].ToString();key是你控件的ID value是控件的值

求教Android,动态添加到控件能动态删除吗?
1、动态添加的时候为组件设置id,删除的时候根据id查找到对应组件,然后删除 2、根据父节点,获取所有父组件下的子组件,然后依次删除。示例:protected View createView() {\/\/动态添加组件 Button btn = new Button(this);\/\/动态创建按钮 btn.setId(index++); btn.setLayoutParams(new Layou...

vb6.0 动态添加的控件可以对它进行操作吗?
可以啊,VB6我知道的有两种方法动态添加、删除控件,一种是用Controls,一种是用控件数组,不知道你用的哪种?用Controls:dim frame1 as Frame Set frame1 = Controls.Add("VB.Frame", "aa") ‘添加 frame1 .Visible = True frame1.Width = 1000‘调整大小 frame1.Height = 1000 Controls....

相似回答
大家正在搜