Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.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
C# 动态显示ListView_C#_Asp.net_Listview_Webforms - Fatal编程技术网

C# 动态显示ListView

C# 动态显示ListView,c#,asp.net,listview,webforms,C#,Asp.net,Listview,Webforms,有没有一种方法可以在不知道字段名称的情况下显示ListView?在代码隐藏中,我将数据传递给ListView,但不知道如何显示它,因为我计划对所有表使用此模板 在模板中,类似于 <tr> foreach( Key in ListView.Keys ) { <th>Key</th> } </tr> foreach( Row in LisView.Rows ) { <tr> f

有没有一种方法可以在不知道字段名称的情况下显示ListView?在代码隐藏中,我将数据传递给ListView,但不知道如何显示它,因为我计划对所有表使用此模板

在模板中,类似于

<tr>
    foreach( Key in ListView.Keys )
    {
        <th>Key</th>
    }
</tr>
foreach( Row in LisView.Rows )
{
    <tr>
        foreach ( Column in Row )
            <td>Column</td>
    </tr>
}

感谢您的帮助!提前谢谢

这解决了我的问题:

HTML

代码

//从数据库填充数据表。
DataTable dt=this.GetData();
//构建HTML字符串。
StringBuilder html=新的StringBuilder();
//桌子开始。
html.Append(“”);
//构建标题行。
html.Append(“”);
foreach(dt.Columns中的DataColumn列)
{
html.Append(“”);
Append(column.ColumnName);
html.Append(“”);
}
html.Append(“”);
//构建数据行。
foreach(数据行中的数据行)
{
html.Append(“”);
foreach(dt.Columns中的DataColumn列)
{
html.Append(“”);
Append(行[column.ColumnName]);
html.Append(“”);
}
html.Append(“”);
}
//桌尾。
html.Append(“”);
//将HTML字符串附加到占位符。
占位符1.Controls.Add(新文本{Text=html.ToString()});
找到了更好的方法:

Html


my
all(“Users”)
函数返回
DataTable

如果使用自动生成列设置为true的
GridView
,也将解决此问题。
----------------------------
| id  | name    | surname  |
----------------------------
| 1   | John    | Doe      |
| 2   | Jack    | Jones    |
| 3   | Mary    | Williams |
| 4   | Sue     | Smith    |
<asp:PlaceHolder ID = "PlaceHolder1" runat="server" />
using System.Data;
using System.Text;
using System.Configuration;
using System.Data.SqlClient;
    //Populating a DataTable from database.
    DataTable dt = this.GetData();

    //Building an HTML string.
    StringBuilder html = new StringBuilder();

    //Table start.
    html.Append("<table border = '1'>");

    //Building the Header row.
    html.Append("<tr>");
    foreach (DataColumn column in dt.Columns)
    {
        html.Append("<th>");
        html.Append(column.ColumnName);
        html.Append("</th>");
    }
    html.Append("</tr>");

    //Building the Data rows.
    foreach (DataRow row in dt.Rows)
    {
        html.Append("<tr>");
        foreach (DataColumn column in dt.Columns)
        {
            html.Append("<td>");
           html.Append(row[column.ColumnName]);
            html.Append("</td>");
        }
        html.Append("</tr>");
    }

    //Table end.
    html.Append("</table>");

    //Append the HTML string to Placeholder.
    PlaceHolder1.Controls.Add(new Literal { Text = html.ToString() });
<asp:Table ID="testTable" runat="server" />
            TableRow tHeaderRow = new TableHeaderRow();

            tHeaderRow.TableSection = TableRowSection.TableHeader;

            testTable.Rows.Add(tHeaderRow);

            foreach (DataColumn column in all("Users").Columns)
            {
                TableHeaderCell tHeaderCell = new TableHeaderCell();
                tHeaderCell.Text = column.ColumnName;
                tHeaderRow.Cells.Add(tHeaderCell);
            }

            foreach( DataRow row in all("Users").Rows)
            {
                TableRow tRow = new TableRow();

                testTable.Rows.Add(tRow);

                foreach (DataColumn column in all("Users").Columns)
                {
                    TableCell tCell = new TableCell();
                    tCell.Text = row[column.ColumnName].ToString();
                    tRow.Cells.Add(tCell);
                }
            }