Asp.net 如何获取动态文本框值?

Asp.net 如何获取动态文本框值?,asp.net,Asp.net,我创建了两个函数,一个用于将文本框动态添加到表中,另一个用于在数据库中插入值。我在获取动态文本框的id并将其文本插入数据库时遇到问题。到目前为止,我已经尝试创建一个列表来保存文本框的id,但值为空 ASPX <asp:TextBox CssClass="form-control" placeholder="Set numbers from 1-30" ID="tbxRows" run

我创建了两个函数,一个用于将文本框动态添加到表中,另一个用于在数据库中插入值。我在获取动态文本框的id并将其文本插入数据库时遇到问题。到目前为止,我已经尝试创建一个列表来保存文本框的id,但值为空

ASPX

                        <asp:TextBox CssClass="form-control" placeholder="Set numbers from 1-30" ID="tbxRows" runat="server"></asp:TextBox>  
                        <asp:RangeValidator ID="RangeValidator1" Type="Integer" MinimumValue="1" MaximumValue="30" ControlToValidate="tbxRows" runat="server"></asp:RangeValidator>
                        <asp:Button ID="btnAdd" OnClick="btnAdd_Click" Cssclass="btn green" runat="server" Text="Set Rows" style="width:100%;" />


                <asp:Table ID="Table1" runat="server" class="table table-striped table-bordered table-hover">
                   <asp:TableRow>
                        <asp:TableCell>
                            Departure Airport
                        </asp:TableCell>
                       <asp:TableCell>
                            Departure Date
                        </asp:TableCell>
                        <asp:TableCell>
                            Departure Time (UTC)
                        </asp:TableCell>
                       <asp:TableCell>
                            Arrival Airport
                        </asp:TableCell>
                        <asp:TableCell>
                            Arrival Date
                        </asp:TableCell>
                       <asp:TableCell>
                            Arrival Time (UTC)
                        </asp:TableCell>
                   </asp:TableRow>
                </asp:Table>
                <asp:Button CssClass="btn green" ID="btnSubmit" runat="server" Text="Submit" OnClick="btnSubmit_Click" />

那么您在回发上创建了动态添加的行/文本框,如所述? 但是,即使您这样做是正确的,这也不会与您的代码一起工作,因为您无法像您尝试的那样访问文本框:
“row”+i+“tbx”+0.Text
-这甚至可以编译吗

尝试在submit中迭代您的表行,如下所示:

for (int i = 0; i < Table1.Rows.Count; i++)
{
    TableRow row = Table1.Rows[i];
    for (int j = 0; j < row.Cells.Count; j++) 
    {
        TableCell cell = row.Cells[j];
        TextBox textBox = (TextBox)cell.FindControl("row" + i + "tbx" + j);
    }
}
for(int i=0;i

因此,您可以收集所有要保存在数据库中的数据。

因此,您可以在回发上创建动态添加的行/文本框,如所述? 但是,即使您这样做是正确的,这也不会与您的代码一起工作,因为您无法像您尝试的那样访问文本框:
“row”+i+“tbx”+0.Text
-这甚至可以编译吗

尝试在submit中迭代您的表行,如下所示:

for (int i = 0; i < Table1.Rows.Count; i++)
{
    TableRow row = Table1.Rows[i];
    for (int j = 0; j < row.Cells.Count; j++) 
    {
        TableCell cell = row.Cells[j];
        TextBox textBox = (TextBox)cell.FindControl("row" + i + "tbx" + j);
    }
}
for(int i=0;i

因此,您可以收集所有要保存在数据库中的数据。

感谢您的回复,但是文本框似乎为我提供了一个空值,并为table1提供了for循环。行循环一次。如果您不每次在回发上创建动态添加的行/文本框,它将为您提供空值。如何在回发上添加行/文本框?我在网上查了一下如何做,但我不知道如何将其应用到代码中。你应该阅读你在起始问题中发布的问题/答案。从那里你可以得到你需要的信息:设法让代码正常工作。谢谢你帮助我!感谢您的回复,但是文本框似乎给了我一个空值,表1的for循环循环。行循环一次。如果您不每次在回发上创建动态添加的行/文本框,它将给您空值。如何在回发上添加行/文本框?我在网上查了一下如何做,但我不知道如何将其应用到代码中。你应该阅读你在起始问题中发布的问题/答案。从那里你可以得到你需要的信息:设法让代码正常工作。谢谢你帮助我!