C# 如何动态使用eval() for(i=0;i
问题是……您确实知道将出现什么列名。您在步骤2中说dt.column.Add()字符串参数将来自数据库。因此,这意味着一个单独的过程,您首先进入数据库并获取列名列表C# 如何动态使用eval() for(i=0;i,c#,asp.net,C#,Asp.net,问题是……您确实知道将出现什么列名。您在步骤2中说dt.column.Add()字符串参数将来自数据库。因此,这意味着一个单独的过程,您首先进入数据库并获取列名列表 然后,您将遍历该列表并填充Eval函数(您添加的FOR语句实际上将遍历数据库列名列表,这些列名可能位于数组、列表或它们自己的datatable对象中).GridView更适合这种情况,它会自动从数据源生成列 但是,您可以循环使用数据表的列属性,并从每个列中获取列名属性,但是不能在数据绑定标记()内使用foreach循环 下面是如何获
然后,您将遍历该列表并填充Eval函数(您添加的FOR语句实际上将遍历数据库列名列表,这些列名可能位于数组、列表或它们自己的datatable对象中).GridView更适合这种情况,它会自动从数据源生成列 但是,您可以循环使用
数据表的列
属性,并从每个列中获取列名
属性,但是不能在数据绑定标记(
)内使用foreach
循环
下面是如何获取代码隐藏中的列名:
for(i=0;i<10;i++)
{
<%# Eval(i.ToString()).ToString()%>
}
您可以在中继器的项目模板的循环中使用它,但是,因为您没有使用数据绑定块(
),您将丢失容器。DataItem
,这使得从当前项目渲染数据非常困难(如果不是不可能的话)。解决您的问题
在*ASP.NET*中
DataTable dt = new DataTable();
//populate data table
foreach (DataColumn col in dt.Columns)
{
string columnName = col.ColumnName;
}
在C#后面的代码中
System.Data.DataTable dt=null;
私有void GetData()
{
System.Data.DataTable dtMain=//MyDAta表;
dt=新的System.Data.DataTable();
dt.列。添加(“列名称”);
System.Data.DataRow dr=null;
for(int i=0;i
这是什么类型的代码?您想做什么(英语)我已经添加了一个GRIDVIEW的解释,如果你正在尝试做某种动态网格,你应该考虑在GRIDVIEW上使用“AutoGeNeCeCulnNs”属性,然后利用“OnWraveCudies”事件来评估/转换ReDel.Yar之前的数据!现在我的问题是如何获得DataTable的“列名称”这不是解决方案。请先阅读问题,然后再回答:(
<asp:Repeater ID="rptrTester" OnItemDataBound="rptrTester_ItemDataBound" runat="server">
<ItemTemplate>
<asp:Repeater ID="rptrTesterInner" runat="server">
<ItemTemplate>
<%# Eval("COL_NAME")%>
</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:Repeater>
System.Data.DataTable dt = null;
private void GetData()
{
System.Data.DataTable dtMain = // MyDAta Table;
dt = new System.Data.DataTable();
dt.Columns.Add("COL_NAME");
System.Data.DataRow dr = null;
for (int i = 0; i < dtMain.Columns.Count; i++)
{
dr = dt.NewRow();
dr[0] = dtMain.Columns[0].ColumnName;
dt.Rows.Add(dr);
}
rptrTester.DataSource = dtMain;
rptrTester.DataBind();
}
protected void rptrTester_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
Repeater rptrTesterInner = (Repeater)e.Item.FindControl("rptrTesterInner");
rptrTesterInner.DataSource = dt;
rptrTesterInner.DataBind();
}