Asp.net 如何创建包含控件的自定义控件,以便我可以在webform上重复25次

Asp.net 如何创建包含控件的自定义控件,以便我可以在webform上重复25次,asp.net,webforms,Asp.net,Webforms,我需要创建一个至少有25个空闲行的表单。用户将添加数据,这些数据将保存到一个包含6个字段的现有数据库中。最好的方法是什么。您可以创建一个自定义控件,其中包含这三个控件吗?任何帮助都将不胜感激 ---------------- ----------- -------------- | | | | | | | Text Box | | Label | | Text Box | ---------

我需要创建一个至少有25个空闲行的表单。用户将添加数据,这些数据将保存到一个包含6个字段的现有数据库中。最好的方法是什么。您可以创建一个自定义控件,其中包含这三个控件吗?任何帮助都将不胜感激

----------------   -----------  --------------
|               | |          |  |            |  
|  Text Box     | |   Label  |  | Text Box   |  
----------------  ------------  -------------
我创建了这个列表视图:

 <asp:ListView ID="ListView1" runat="server" DataSourceID="XmlDataSource2" >
<LayoutTemplate>
<table cellpadding="2" width="640px" border="1" runat="server" id="tblProducts">
        <tr id="Tr1" runat="server">
          <th id="Th1" runat="server">EmployeeID</th>
          <th id="Th2" runat="server">Name</th>
          <th id="Th3" runat="server">Absentee Code</th>
        </tr>
        <tr runat="server" id="itemPlaceholder" />
</table>    
</LayoutTemplate>
<ItemTemplate>

<tr runat="server">
<td>
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</td>
<td>
    <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</td>
<td>
    <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
</td>
</tr>    
</ItemTemplate>        
</asp:ListView>
<asp:XmlDataSource ID="XmlDataSource2" runat="server" 
    DataFile="~/App_Data/EmptyRows.xml"></asp:XmlDataSource>
<div style="height: 36px">
    <asp:Button ID="Button1" runat="server" Text="Submitt" />
</div>

使用所需的ItemTemplate定义Repeater或ListView。绑定到它25个空白行,这将根据您的需要显示。保存时,您可以循环行以获取控制值。我使用
FindControl()

创建了列表视图,它看起来像是我想要的,但我仍然不知道如何将它绑定到25个空行。您的意思是创建一个包含3个字段和25个空行的数据库吗?把它绑起来?对不起,我是这方面的新手。是的,创建25条空记录;不必是DB,只需是
list.DataSource=new ArrayList{new{First=”“,Second=“”,Third=“”},new{First=“”,Second=“”,Third=“”},…}
我用XML做的,它成功了!谢谢你@Brian Mains。我试图使用Dim lview作为ListViewItem读取文本框的值。对于ListView1.Items中的每个lview。但当我查看子项(1)时。它不显示子项吗?有什么建议吗?要从该项获取控件,必须执行
listViewitem.FindControl(“控件ID”)
并将其强制转换为正确的控件类型。确保您位于项目记录(而不是页眉或页脚)上,因为这可能不起作用。为此,请检查ItemType属性是否为“Item”类型。如果(lView.ItemType==)需要一个
包装,然后需要将其转换为文本框,而不是字符串。该错误是正确的:
Dim control As TextBox=CType(lview.FindControl(“TextBox1”),TextBox)
Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    Dim lview As ListViewItem

    For Each lview In ListView1.Items

        Dim control As Control = lview.FindControl("TextBox1")
        Dim resutltxtb1 = control.Text.ToString

    Next
End Sub