2010-08-25 26 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