日期:2014-05-17  浏览次数:20434 次

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


现在表格是用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的值的。先结贴,再继续发贴问下一步了