如何在表格行中填充数据集值?

时间:2014-10-16 05:26:43

标签: c# asp.net dataset

我的函数为Bind_Project_details(),如下所示:

string[] Parameters = new string[3] { "@User_ID", "@PAGE_NO", "@PAGE_SIZE" };
        string[] DbTypes = new string[3] { "int","int","int" };
        string[] ParameterTypes = new string[3] { "input", "input", "input" };
        object[] values = new object[3] { iUserID, pageno, pagesize };
        string[] Lengths = new string[3] { "5","5","5" };

        P2ERefrence.Service du = new P2ERefrence.Service();

        ds = du.returnDataSet("proc", "BIND_PROJECT_GRID", Parameters, DbTypes, ParameterTypes, values, Lengths);

在数据集项目中,详细信息来自数据库。我想在表体中绑定这些数据集值,如下所示:

<table id="table1" class="display" cellspacing="0" width="100%">
    <thead>
        <tr>
            <th><input type="checkbox" id="" name=""></th>
            <th>User</th>
            <th>Role</th>
            <th>Project Name</th>
        </tr>
    </thead>

    <tbody>
    .........
    .........
    .........
    </tbody>

</table>

2 个答案:

答案 0 :(得分:0)

根据您的评论,您希望自定义数据绑定服务器控件的html输出。如果是这种情况,您可以使用的是Repeater服务器控件或ListView。我会解释两个......

使用转发器控件

Repeater提供了几个可用于设置输出样式的数据模板。你感兴趣的是:

  • HeaderTemplate中
  • 的ItemTemplate
  • AlternatingItemTemplate(可选)
  • FooterTemplate

您可以一起绑定数据并自定义html输出。例如......

<asp:Repeater ID="rp" runat="server">
   <HeaderTemplate>
       <table id="table1" class="display" cellspacing="0" width="100%">
        <thead>
            <tr>
                <th></th>
                <th>User</th>
                <th>Role</th>
                <th>Project Name</th>
            </tr>
        </thead>
           <tbody>
   </HeaderTemplate>
   <ItemTemplate>
       <tr>
           <td><input type="checkbox" id="" name=""></td>
           <td><%# Eval("User") %></td>
           <td><%# Eval("Role") %></td>
           <td><%# Eval("ProjectName") %></td>
       </tr>
   </ItemTemplate>
   <FooterTemplate>
       </tbody>
     </table>
   </FooterTemplate>
</asp:Repeater>

ItemTemplate是您定义数据绑定表达式的地方...确保根据您自己的数据使用正确的数据绑定表达式

使用ListView控件

ListView控件非常相似,与Repeater控件的工作方式非常相似。但是,ListView在功能方面更强大。因为它有很多你可以使用的模板,只关注你需要的模板:

  • 的ItemTemplate
  • AlternatingItemTemplate(可选)
  • LayoutTemplate模板

LayoutTemplate中,您可以将您想要的任何内容从html元素添加到Web控件中,但是,它至少需要一个指定了runat=server属性的元素和一个唯一ID。它使用它作为占位符,以便数据绑定(添加)数据绑定项。然后,您需要将ItemPlaceholderID属性设置为此占位符项的ID。见下文......

<asp:ListView ID="lst" runat="server" ItemPlaceholderID="tblBody">
   <LayoutTemplate>
       <table id="table1" class="display"  cellspacing="0" width="100%">
        <thead>
            <tr>
                <th></th>
                <th>GivenName</th>
                <th>DOB</th>
                <th>Phone</th>
            </tr>
        </thead>
           <tbody id="tblBody" runat="server">
           </tbody>
        </table>
   </LayoutTemplate>
   <ItemTemplate>
       <tr>
           <td><input type="checkbox" id="" name=""></td>
           <td><%# Eval("GivenName") %></td>
           <td><%# Eval("DOB") %></td>
           <td><%# Eval("PhoneMobile") %></td>
       </tr>
   </ItemTemplate>
 </asp:ListView>

RepeaterListView都可以使用DataSource属性进行数据绑定,或将DataSourceID属性设置为有效的DataSource控件

lst.DataSource = dataSet1.Tables[0];
lst.DataBind();

答案 1 :(得分:0)

您想将DataTable绑定到htmlTable。为此,

aspx.cs

dt.Columns.AddRange(new DataColumn[] { new DataColumn("User", Type.GetType("System.String")), new DataColumn("Role", Type.GetType("System.String")) });
        dt.Rows.Add(new object[] { "raju", "1" });
        dt.Rows.Add(new object[] { "mahesh", "1" });

ASPX

 <table>
            <tbody id="tbody" runat="server">
                <%foreach (System.Data.DataRow item in dt.Rows)
                  { %>
                <tr>
                    <td><%: item[0].ToString() %></td>
                    <td><%: item[1].ToString() %></td>
                </tr>
                <% } %>
            </tbody>
        </table>