读书人

请教怎么动态生成服务器控件并添加到

发布时间: 2012-12-16 12:02:32 作者: rapoo

请问如何动态生成服务器控件,并添加到前台表格中。


现在表格是用repeater动态生成的记录行,我想把test换成是textbox服务器控件。

用下面这段代码添加,倒是加上了,只是位置无法控制,我想让它们放在表格的单元格中。请教各位大侠,如何实现此功能啊?

for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
TextBox tbxName = new TextBox();
tbxName.ID = "tbxName"+i;
tbxName.Text = "OK";
this.Form1.Controls.Add(tbxName);
}
[最优解释]
<asp:TextBox ID="txtName" runat="server" Text='<#Eval("字段名")>'></asp:TextBox>
[其他解释]
可以考虑用Repeater

<asp:Repeater id="rpt" runat="server">
<HeaderTemplate>
<table>
<tr><td>参数名</td><td>参数值</td></tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td><%#Eval("参数名称")%></td>
<td><asp:TextBox ID="ParamValue" runat="server" Text="" /></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>



你只要绑定这个Repeater就可以了。
全手写代码例子,累啊。
[其他解释]
你不如直接通过javascript,在指定的单元格内写html脚本呢,比如找到一个<td>,然后设置他的html内容<asp:Button ID="Button2" runat="server" Text="Button" />
[其他解释]
<ItemTemplate>里面直接放3楼说的控件
[其他解释]
分数不够可以再追加,谢谢各位。
[其他解释]

引用:
你不如直接通过javascript,在指定的单元格内写html脚本呢,比如找到一个<td>,然后设置他的html内容<asp:Button ID="Button2" runat="server" Text="Button" />


不是很明白,可以请版主再说详细一点吗?有例子更好,谢谢啦。
[其他解释]
引用:
<asp:TextBox ID="txtName" runat="server" Text='<#Eval("字段名")>'></asp:TextBox>

<asp:TextBox ID="txtName" runat="server" Text='<%#Eval("fieldName")%>'></asp:TextBox>
您好,稍改了一下,我试了一下这样可以生成,只是这样生成的ID都是一样的,在后台如何取值呢?

[其他解释]
var tb = Repeater2.Items[0].FindControl("txtName") as TextBox;
[其他解释]
刚才问题描述不清。还想在后台取得textbox的值的。先结贴,再继续发贴问下一步了


[其他解释]
曾经做过类似在后台添加控件的方法,你参考一下吧
HtmlGenericControl hc = new HtmlGenericControl("label");//创建label
hc.Attributes.Add("style", "width:120px");//为label添加样式

RadioButton radio = new RadioButton();//创建RadioButton
radio.Text = dsReturn.Tables[0].Rows[m]["StyleAutoQASName"].ToString();
radio.ID = dsReturn.Tables[0].Rows[m]["StyleAutoQASCode"].ToString();
radio.GroupName = "category";
radio.Attributes.Add("onclick", "javascript:fn_SearchPerson('" + code + "','" + radio.ID + "')");

hc.Controls.Add(radio);
cell.Controls.Add(hc);
row.Cells.Add(cell);
table1.Rows.Add(row);

读书人网 >asp.net

热点推荐