主题:  如何取得如下TextBox的Text属性值?

Lukiya

职务:普通成员
等级:1
金币:0.0
发贴:59
#12004/12/16 21:18:59
#region 生成上传栏按钮点击
private void btnAddTableRow_Click(object sender, System.EventArgs e)
{
string sUpAmount = txtSongAmount.Text.Trim(); // 取得歌曲数量
if(sUpAmount=="" sUpAmount = "0";    // 设置默认数量
int iUpAmount = Convert.ToInt32(sUpAmount);// 转换
for(int i=0;i<iUpAmount;i++)
{
TableRow tabRow = new TableRow();    // 建立表单行对象
TableCell tabCell = new TableCell();    // 建立表单行间细胞对象

// 建立歌曲名输入框实例
System.Web.UI.WebControls.TextBox txtSName = new TextBox();
txtSName.Attributes.Add("style","border-style:Groove;height:19px;width:70px";// 设置样式
txtSName.Attributes.Add("id","txtSName"+i.ToString()); // 设置id名
tabCell.Controls.Add(txtSName);        // 添加歌曲名输入框控件

tabRow.Cells.Add(tabCell);    // 添加行间细胞
tabUpItem.Rows.Add(tabRow);    // 添加行
}
if(revAmount.IsValid) btnAddAlbum.Enabled = true;    // 控制是否允许添加专辑
else btnAddAlbum.Enabled = false;
}
#endregion



Lukiya

职务:普通成员
等级:1
金币:0.0
发贴:59
#22004/12/16 21:22:10
然后我又写了个函数,里面要用FindControl找到自动添加的TextBox
UpMp3Info = new string[2,SongAmount];    // 创建2维数组,0层装歌曲名,1层装路径
for(int i=0;i<SongAmount;i++)    // 循环装入歌曲名
{
string tmp = "txtSName"+i.ToString();
TextBox MyBox = (TextBox)tabUpItem.Rows[i].Cells[0].FindControl(tmp);
UpMp3Info[0,i] = MyBox.Text;
}
===========
可是怎么都找不到上个函数添加的TextBox,郁闷死我了,老说未实例化对象.
怎么回事呢?
另外,除了这种FindControl的方法还有其他方法可以得到TextBox的text属性值么?



蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
#32004/12/16 22:57:29
Table控件确实没用过,不过TextBox txtsName = new TextBox();,这应该是页面程序生成新的TextBox控件,而不是Table内部绑定控件,与DataGrid的绑定应该有区别。虽然Cell也使用Add方法添加控件,这只是把TextBox固定在该网格上。所以就没必要使用FindControl方法了,直接使用TextBox好了,如txtSName1.Text = "";


非常大鱼

Lukiya

职务:普通成员
等级:1
金币:0.0
发贴:59
#42004/12/16 23:11:23
但是ID都是变化的,比如有5首歌,那么就自动生成5个TextBox,名字自动命名为txtSName1、txtSName2、txtSName3、txtSName4、txtSName5
怎么办?
("txtSName"+i.ToSting()).Text肯定是不能用的,郁闷…………

我就是想做一个根据输入的歌曲数然后生成对应的[歌曲名输入框和上传框],因为要求动态变化,所以郁闷啊~~上传框可以用HttpFileCollection取得。
但是TextBox就不行了,好苦恼……



蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
#52004/12/17 1:54:27
建议使用DataGrid控件,做这方面,DataGrid擅长控制,而Table一般用来格局化的。


非常大鱼

Lukiya

职务:普通成员
等级:1
金币:0.0
发贴:59
#62004/12/17 22:02:30
hi
找到解决方法了。

这人一上年纪头脑就不灵光.
居然忘了最基本的Request.Form

汗.