Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 如何在动态表中检索控件内容?_Asp.net_Vb.net_User Controls_Dynamic Tables - Fatal编程技术网

Asp.net 如何在动态表中检索控件内容?

Asp.net 如何在动态表中检索控件内容?,asp.net,vb.net,user-controls,dynamic-tables,Asp.net,Vb.net,User Controls,Dynamic Tables,我有一个页面,我想收集有关x用户数量的信息。我有一个控件,您可以在其中输入用户数量,然后根据该数量创建一个动态表,每个用户都有一行。每个表行都有文本框控件,我希望在回发时从中检索值。如何实现这一点?您可能会发现创建asp:GridView要容易得多。然后,您可以迭代回发上的行并检查控件。有很多示例代码。您针对的是哪种特定样式的ASP.Net?ASP.NETMVC?网络表单 在webforms中执行类似操作的最快、最简单的方法(我更熟悉这种方法)是在页面上放置GridView控件,并将一个通用集合

我有一个页面,我想收集有关
x
用户数量的信息。我有一个控件,您可以在其中输入用户数量,然后根据该数量创建一个动态表,每个用户都有一行。每个表行都有文本框控件,我希望在回发时从中检索值。如何实现这一点?

您可能会发现创建asp:GridView要容易得多。然后,您可以迭代回发上的行并检查控件。有很多示例代码。

您针对的是哪种特定样式的ASP.Net?ASP.NETMVC?网络表单

在webforms中执行类似操作的最快、最简单的方法(我更熟悉这种方法)是在页面上放置GridView控件,并将一个通用集合绑定到该集合,您可以根据控件中输入的数字设置其大小

下面是一段快速的代码。在Visual Studio 2010中创建了默认的WebForms Web项目

网页来源:

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
    CodeBehind="Default.aspx.cs" Inherits="WebApplication1._Default" %>

<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">

    <p>
        <table>
            <tr>
                <td>Rows:</td>
                <td><asp:TextBox ID="TextBox1" runat="server" />
                    <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
                </td>
            </tr>
            <tr>
                <td colspan=2>
                <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
                    <Columns>
                        <asp:TemplateField>
                            <ItemTemplate>
                                <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
                            </ItemTemplate>
                        </asp:TemplateField>
                    </Columns>
                </asp:GridView>
                    <asp:Button ID="Button2" runat="server" onclick="Button2_Click" Text="Button" />
                </td>
            </tr>
        </table>


    </p>

</asp:Content>


排:

代码隐藏:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebApplication1
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Init(object sender, EventArgs e)
        {

        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            List<string> users = new List<string>(Enumerable.Repeat(string.Empty, Int32.Parse(TextBox1.Text)));
            GridView1.DataSource = users;
            GridView1.DataBind();
        }

        protected void Button2_Click(object sender, EventArgs e)
        {
            var list = from GridViewRow row in GridView1.Rows
                       where row.RowType == DataControlRowType.DataRow
                       select (row.FindControl("TextBox2") as TextBox).Text;
            // now do something with this list of strings
        }
    }
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用System.Web;
使用System.Web.UI;
使用System.Web.UI.WebControl;
命名空间WebApplication1
{
公共部分类\u默认值:System.Web.UI.Page
{
受保护的无效页_Init(对象发送方,事件参数e)
{
}
受保护的无效按钮1\u单击(对象发送者,事件参数e)
{
List users=新列表(Enumerable.Repeat(string.Empty,Int32.Parse(TextBox1.Text));
GridView1.DataSource=用户;
GridView1.DataBind();
}
受保护的无效按钮2\u单击(对象发送者,事件参数e)
{
var list=来自GridView1.Rows中的GridViewRow行
其中row.RowType==DataControlRowType.DataRow
选择(row.FindControl(“TextBox2”)作为TextBox.Text;
//现在用这个字符串列表做一些事情
}
}
}

这是我的下一个攻击计划。在强大的ASP经典背景下,我构建页面时假设引用动态创建的控件不会如此困难。我使用的是Webforms。您的示例与我现在根据Bill使用gridview的建议编写的非常接近。