我有一個數據列表,並希望從表中獲取行名,我從數據列表中獲取我的值。下面是我想要做的一個例子。在DataList中獲取行的名稱
<HeaderTemplate>
'Get data row names
'Maybe something like Container.DataItem(row)?
</HeaderTemplate>
我有一個數據列表,並希望從表中獲取行名,我從數據列表中獲取我的值。下面是我想要做的一個例子。在DataList中獲取行的名稱
<HeaderTemplate>
'Get data row names
'Maybe something like Container.DataItem(row)?
</HeaderTemplate>
如果您正在使用數據表作爲數據源爲您的數據列表,你可以使用OnItemCreated
方法,並提供一個自定義的處理程序ItemCreated
事件中加入列標題值。我不確定你爲什麼想要這樣做。這聽起來像是Repeater或GridView可能更適合您的需求。無論如何,這裏是代碼。
<asp:DataList ID="DataList1" runat="server" OnItemCreated="DataList1_ItemCreated"
ShowHeader="true" >
<HeaderTemplate>
</HeaderTemplate>
</asp:DataList>
protected void Page_Load(object sender, EventArgs e)
{
using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["LocalSqlServer"].ToString()))
{
conn.Open();
SqlCommand comm = new SqlCommand("SELECT [id], [name], [email], [street], [city] FROM [employee_tbl]", conn);
SqlDataAdapter da = new SqlDataAdapter(comm);
da.Fill(dt);
}
DataList1.DataSource = dt;
DataList1.DataBind();
}
protected void DataList1_ItemCreated(object sender, DataListItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Header)
{
foreach (DataColumn col in dt.Columns)
{
Literal lit = new Literal();
lit.Text = col.ColumnName;
e.Item.Controls.Add(lit);
}
}
}
你可以做以下事情,但我懷疑它會起作用。我不相信創建標題時DataItems可用。
((DataRowView)Container.DataItem).DataView.Table.Columns
如果這樣工作,您可以遍歷這個集合並檢查每個項目的ColumnName屬性。
一個更好的想法是將兩種:
List<string>
的屬性。當您聲明標題時,您可以在標記中引用此屬性。
你是指列名? – Canavar 2009-09-20 22:01:03