Reputation: 9225
I have the following template which fills my UL
with data received from a DataTable:
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);
}
But in my page I am using DataSet to get the columns from a SQL query:
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");
}
}
How can I use the first block of code to work with the second block of code so I can generate the LI
inside the UL
?
I am looking to emulate the following:
<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>
Upvotes: 0
Views: 3906
Reputation: 2522
Assuming that you are returning a dataset from GetData(), you can change the following:
DataSet ds = getData();
DataTable dt;
if (ds.Tables.Count > 0)
{
dt = ds.Tables[0];
}
foreach(DataRow row in dt.Rows){
...
Upvotes: 1
Reputation: 499
You can easily convert DataTable to DataSet or vice-versa DataTable from DataSet
//Assuming oDS is my DataSet
DataTable oDt = oDS.Tables[0];// If you know name of datatable you may use oDS.Tables["name"]
DataSet from DataTable
//Assuming oDT is your DataTable
DataSet oDs = new DataSet();
oDs.Tables.Add(oDT);
Upvotes: 4