页面上动态生成的控件,我要对之操作,不知怎么办?

电动汽车砖家刘博士 2003-12-31 03:29:58
我在页面上动态的生成了一些textbox,放置的是dataset里面的数据,现在的难点是怎么对这也生成的控件操作,我要把其中的一些数据修改,然后再放到数据库里。
代码如下:(vb.net)
Dim i As Integer
For i = 0 To IntRowCount - 1
Dim r As TableRow = New TableRow()

'创建Table中的一列,即<TD>

Dim c1 As TableCell = New TableCell()
'c1.BackColor = Color.CadetBlue
Dim myLabel As Label = New Label()
myLabel.ID = "Lbl" & Trim(OleDsField.Tables("Field").Rows(i).Item("column_name")).ToString()
myLabel.Text = Trim(OleDsField.Tables("Field").Rows(i).Item("column_title"))
'myLabel.ForeColor = Color.White
myLabel.EnableViewState = True
c1.Controls.Add(myLabel)
r.Cells.Add(c1)

Dim c2 As TableCell = New TableCell()
Dim mytextbox As TextBox = New TextBox()
mytextbox.ID = "Txt" & Trim(OleDsField.Tables("Field").Rows(i).Item("column_name")).ToString()
mytextbox.Text = Trim(OleDsResult.Tables("Result").Rows(0).Item(i))
mytextbox.EnableViewState = True
c2.Controls.Add(mytextbox)
r.Cells.Add(c2)

Table3.Rows.Add(r)
Next
...全文
98 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
shang515 2004-01-01
  • 打赏
  • 举报
回复
把DataSet绑定到DataGrid
为DataGrid添加ItemDataBound事件:
TextBox box = new TextBox();
box.Text = Item.Cells[0].Text;
Item.Controls.Add(box);
gOODiDEA 2004-01-01
  • 打赏
  • 举报
回复
对,是不完整,主要是让楼主明白那个意思。
树猫 2004-01-01
  • 打赏
  • 举报
回复
gOODiDEA(无语)兄弟,你的代码好像不完整
gOODiDEA 2004-01-01
  • 打赏
  • 举报
回复
参考:

protected void CreatePoll()
{
for ( int i = 1; i < int.Parse( OptionNum.Text ) + 1; i++ )
{
Label ShowPlain = new Label();
ShowPlain.Text = "选项 " + i + ":";
OptionPanel.Controls.Add( ShowPlain );
TextBox Option = new TextBox();
Option.ID = "Option" + i;
Option.CssClass = "input";
OptionPanel.Controls.Add( Option );

RequiredFieldValidator CharValid = new RequiredFieldValidator();
CharValid.ID = "Char" + i;
CharValid.ControlToValidate = "Option" + i;
CharValid.ErrorMessage = "请输入内容!";
CharValid.Enabled = true;
OptionPanel.Controls.Add( CharValid );

System.Web.UI.HtmlControls.HtmlGenericControl _br = new System.Web.UI.HtmlControls.HtmlGenericControl();
_br.InnerHtml = "<br>";
OptionPanel.Controls.Add( _br );
}
}

protected void ModifyPollValue()
{
string [] arrOptionList = ViewState["_OptionList"].ToString().Split( ',' );
string [] arrVoteNumList = ViewState["_VoteNumList"].ToString().Split( ',' );

for ( int i = 1; i < int.Parse( OptionNum.Text ) + 1; i++ )
{
( ( TextBox ) this.Controls[0].FindControl( "Option" + i ) ).Text = arrOptionList[i];
}
}


private void Page_Load(object sender, System.EventArgs e)
{
if ( !Page.IsPostBack )
{
if ( ( Request["IsModify"] != null ) && ( Request["IsModify"].ToString() != string.Empty ) )
{
InitModify();
ModifyPoll();
AddLm_Title.Text = "修改";
IsUnique.Visible = false;
ChangOption.Visible = false;
OptionNum.Visible = false;
}
else
{
OptionNum.Text = Request["OptionNum"].ToString();
CreatePoll();
}
}
else
{
CreatePoll();
}
}

首先创建控件,设置ID,回发时也要相应的创建控件.然后根据ID取得值.大概意思就是这样。
senzz 2004-01-01
  • 打赏
  • 举报
回复
生成控件时:
this.atxtBox[11].ID = "txtLetter";

更新数据时:

TextBox txtLetter = (TextBox)Page.FindControl("txtLetter");
string Letter = txtLetter.Text.Trim();
houjianxun 2003-12-31
  • 打赏
  • 举报
回复
可以旋环Page.Controls取得所有控件,依次判断是否为TextBox

页面中是只有这些生成的TextBox吗?
dcogili 2003-12-31
  • 打赏
  • 举报
回复
哈哈,你的TextBox是不是服务器控件呢?
protected static System.Web.UI.WebControls.TextBox[] tb=new TextBox[100];
myRow.Controls.Add(myCell2);
TextBox Tb=new TextBox();
myCell2.Controls.Add(Tb);
tb[i]=Tb;

62,051

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧