从ASP.net页面读取文本框,重复n次

时间:2011-11-13 18:28:33

标签: c# asp.net

我有一个asp.net网页,其中有许多控件根据从数据库中检索到的记录数重复,我想在用户输入值后读取这些文本框的值,所以如果任何人都可以帮我解决这个问题。

我有一个工作的例子

    <% System.Data.SqlClient.SqlDataReader myDReader = myDatabaseConnector.getDataFromDBAsSQLDataReader("SELECT * from students);
       while(myDReader.Read())
       { %>
           <asp:TextBox ID="txtCourseInfo" Test="" EnableViewState="false" CssClass="dataEntrySearchDataText" ReadOnly="true" runat="server"></asp:TextBox>

    <% } %>

这是我的问题的样本,我想在我的C#代码后面检索txtCourseInfo的值

1 个答案:

答案 0 :(得分:2)

您可以使用Repeater执行此操作:

<asp:repeater id="rptCourses" runat="server" DataSourceID="dsCourseInfo" 
   <ItemTemplate>
 <asp:TextBox ID="txtCourseInfo" Text='<%#Eval("StudentName")#%>' EnableViewState="false" CssClass="dataEntrySearchDataText" ReadOnly="true" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:Repeater>

<asp:sqldatasource id="dsCourseInfo"  
ConnectionString="<%$ ConnectionStrings:YourConnectionString %>" 
Select Command="Select * from Students">
</asp:sqldatasource>

这就是你所需要的一切。从后面的代码中,您可以遍历转发器上的控件并获取信息。

注意文本字段上的Eval表达式。我使用“StudentName”作为示例,但您应该使用select statement

返回的列名之一

其他评论:

  1. 不要做select * from ...这在很多方面都是不好的做法。即使您需要所有列,也要始终指定所需的列。
  2. 我意识到你在文本框上禁用了viewstate。我不知道这样做的原因,但请注意,除非您在控件上启用该信息,否则不会在后续回发中保留该信息。
  3. <强>更新

    是的,您可以在转发器中放置表格。请看下面的例子:

     <ItemTemplate>
                <table runat="server" style="color: White; background-color: #3A4F63;" visible="false"
                    id="headerTable">
                    <tr>
                        <td colspan="3" align="center">
                            <asp:Label ID="headerTitle" runat="server"></asp:Label>
                        </td>
                    </tr>
                    <tr>
                        <td style="width: 200px; background-color: #3A4F63; color: White;">
                            Image 
                        </td>
                        <td style="width: 200px;">
                            Studen Name
                        </td>
                        <td style="width: 200px;">
                            Birth Date
                        </td>
                    </tr>
                </table>
                 <table>
                    <tr>
                        <td style="width: 200px;">
                            <asp:Image ID="img" runat="server" ImageUrl='<%#Eval("ImageUrl") %>'></asp:Image>
                        </td>
                        <td style="width: 200px;">
                            <asp:Label ID="lblName" runat="server" Text='<%#Eval("Name") %>'></asp:Label>
                        </td>
                        <td style="width: 200px;">
                            <asp:Label ID="lblBirthDate" runat="server" Text='<%#Eval("BirthDate") %>'></asp:Label>
                        </td>
                    </tr>
                </table>
    </ItemTemplate>