C# 如何从代码隐藏中以.aspx文件中的HTML元素为目标

C# 如何从代码隐藏中以.aspx文件中的HTML元素为目标,c#,html,asp.net,datatable,datarow,C#,Html,Asp.net,Datatable,Datarow,我正在使用ASP.NET和C#: 我有我希望在我的网页上以HTML元素显示的数据。目前,我可以通过在代码中创建一个新的div和段落来显示数据,但无法将其定位到现有的HTML代码中。下面是我在代码隐藏中创建div和段落的地方 //Populating a DataTable from database. DataTable dt = this.GetData(); //Building an HTML string. StringBuilder h

我正在使用ASP.NET和C#:

我有我希望在我的网页上以HTML元素显示的数据。目前,我可以通过在代码中创建一个新的div和段落来显示数据,但无法将其定位到现有的HTML代码中。下面是我在代码隐藏中创建div和段落的地方

      //Populating a DataTable from database.
      DataTable dt = this.GetData();

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

      //Div start.
      html.Append("<div>");                

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

            //Div end.
            html.Append("</div>");
//从数据库填充数据表。
DataTable dt=this.GetData();
//构建HTML字符串。
StringBuilder html=新的StringBuilder();
//Div开始。
html.Append(“”);
//构建数据行。
foreach(数据行中的数据行)
{
html.Append(“”);
foreach(dt.Columns中的DataColumn列)
{
html.Append(“”);
Append(行[column.ColumnName]);
html.Append(“

”); } html.Append(“”); } //Div end。 html.Append(“”);
如何将现有HTML元素作为显示数据的目标

    <div class="deal-info">             
         <h3>Name</h3>
         <p>Description</p>
         <p>Location</p>
         <p>Price</p>
    </div>  

名称
描述

位置

价格


非常感谢您的帮助:)

如果您将代码隐藏中的每个HTML对象设置为runat server,则基本上您可以访问它。不管我是否推荐它,下面是它的工作原理

<div class="deal-info">             
     <h3>Name</h3>
     <p>Description</p>
     <p>Location</p>
     <p>Price</p>
</div>
<asp:PlaceHolder ID = 'yourplaceholder' runat = 'server' />

System.Text.StringBuilder html = new System.Text.StringBuilder();
//Any code...
//html.Append("..")
yourplaceholder.Controls.Add(new System.Web.UI.LiteralControl(html.ToString()));

名称
描述

位置

价格

System.Text.StringBuilder html=新建System.Text.StringBuilder(); //任何代码。。。 //html.Append(“…”) yourpocholder.Controls.Add(new System.Web.UI.LiteralControl(html.ToString());


名称
描述

位置

价格

System.Text.StringBuilder html=新建System.Text.StringBuilder(); //任何代码。。。 //html.Append(“…”)
您不应该在代码后面手动构建带有字符串的HTML。相反,请使用绑定到数据源的控件。一个转发器将是一个好主意。这看起来非常像php,不要这样做,使用转发器。一旦你掌握了窍门,你的编码将变得更加高效。嗨,非常感谢你的建议。我用了中继器。我希望数据库表中的每一行在网页上以单独的div显示。此时,它输出我放置中继器的div中的所有数据行。有什么修改的建议吗?
<div class="deal-info" id = "yourplaceholder" runat = "server">             
     <h3>Name</h3>
     <p>Description</p>
     <p>Location</p>
     <p>Price</p>
</div>

System.Text.StringBuilder html = new System.Text.StringBuilder();
//Any code...
//html.Append("..")