【发布时间】:2014-05-09 13:16:06
【问题描述】:
我有以下模板,它用从 DataTable 接收到的数据填充我的 UL:
DataTable dt = getData(); //Insert your datasource here
foreach(DataRow row in dt.Rows){
HtmlGenericControl li = new HtmlGenericControl("li");
li.Attributes.Add("data-trait-id", row["TraitID"].ToString());
HtmlAnchor a = new HtmlAnchor();
a.Attributes.Add("data-trait-id", row["TraitID"].ToString());
HtmlGenericControl span1 = new HtmlGenericControl("span");
span1.Attributes.Add("class", "name");
span1.InnerText = row["Name"].ToString();
a.Controls.Add(span1);
HtmlGenericControl span2 = new HtmlGenericControl("span");
span2.Attributes.Add("class", "count");
span2.InnerText = row["Count"].ToString();
a.Controls.Add(span2);
li.Controls.Add(a);
ulSpecialty_selector.Controls.Add(li);
}
但在我的页面中,我使用 DataSet 从 SQL 查询中获取列:
protected void Page_Load(object sender, EventArgs e)
{
using (OleDbConnection connection = new OleDbConnection("Provider=MSDataShape;Data Provider=SQLOLEDB;" + "Data Source=svr;Initial Catalog=db;User ID=zh;Password=zha")) {
OleDbDataAdapter adapter = new OleDbDataAdapter("SHAPE {SELECT * FROM [db].[dbo].[BookingTable]} ", connection);
DataSet dsLocation = new DataSet();
adapter.Fill(dsLocation, "Location");
}
}
如何使用第一个代码块来处理第二个代码块,以便在UL 中生成LI?
我希望模仿以下内容:
<ul class="ulLocation" id="ulLocation2_selector" runat="server">
<li class="liSubLocation active" data-trait-id="9">
<a href="/locations/new-york/neighborhoods?tags[]=12&tags[]=66" class="premote trait-link large btn" data-trait-id="9">
<span class="check"><i class="icon icon-ok"></i></span>
<span class="name">New Rochelle</span>
<span class="count">6</span>
</a>
</li>
</ul>
【问题讨论】:
-
我假设您知道 DataSets 只是 DataTables 的集合,并且您基本上可以像在第一个代码块中使用它一样通过将 DataTable 加载到DataSet 并引用 DataSet 内的第一个索引表。像这样.. DataSet dsLocation = new DataSet(); dsLocation.Tables[0]
-
DataTable dt = dsLocation.Tables[0]
标签: c# sql sql-server htmlgenericcontrol