2010-08-25 59 views
0

我有一个网页,我想收集有关x的用户数的信息。我有一个控制,你输入的用户数量,并根据该数字,我创建一个动态表,每行用户。每个表格行都有文本框控件,我想从回发中检索值。这如何实现?如何检索动态表格中的控件内容?

回答

0

您针对的是什么样的ASP.Net风格? ASP.Net MVC? Web表单?

在webforms(这种方式更熟悉)中最快和最简单的方式是在页面上放置一个GridView控件,并将一个泛型集合绑定到它,以便设置基于在控制中输入的数字。

下面是一段10米长的代码。在Visual Studio中创建一个默认的WebForms Web项目2010

网页源:

<%@ 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 
     } 
    } 
} 
+0

我正在使用Webforms。你的例子看起来接近于我现在写的基于比尔建议使用gridview的东西。 – zeroef 2010-08-25 21:26:11

0

您可能会发现更容易创建一个asp:GridView来代替。然后,您可以在回发中遍历行并检查控件。很多示例代码都在那里。

+0

那是我攻击的下一步计划。借助强大的ASP经典背景,我构建了该页面,并假设引用动态创建的控件并不那么困难。 – zeroef 2010-08-25 21:01:25

相关问题