使用asp:Label绑定值而不知道列名

时间:2013-07-16 14:28:33

标签: c# asp.net .net sql sql-server

我目前使用asp:NET标签绑定数据如下:

<ItemTemplate>
  <asp:Label ID="hhmIdLabel" runat="server" Text='<%# Eval("name") %>'/>
</ItemTemplate>

但是,我想要一个不需要我按列名绑定数据的解决方案,因为我们之后使用的解决方案将使用几个不同的表(所有表都具有相同的结构,但列名不同)。

这是我在C#中的后端:

SqlCommand selectCommand = new SqlCommand("select CRY_HHM_ID, CRY_HRY_KEY from [WH_EXT].[dbo]." + tablesDropDownList.SelectedItem.ToString()+" where "+colName+"= '"+selectedChildKey+"'", myConnection);
myReader = selectCommand.ExecuteReader();

DataTable dt = new DataTable();
dt.Load(myReader);

this.selectedLeafGridView.Visible = true;
selectedLeafGridView.DataSource = dt;
selectedLeafGridView.DataBind();  

类似于这个LINK的解决方案可能有意义,但是,我无法理解它是如何工作的:

<ItemTemplate>
  <%# ((DbDataRecord)Container.DataItem).GetString(0)%>
</ItemTemplate>

我很乐意让这个工作,或提出可能的替代方案,取决于哪个是最好的。

1 个答案:

答案 0 :(得分:0)

请勿将数据层代码与GUI代码混合使用。

你应该绑定到(一个)通用对象的集合(你做的一个)........和SEPARATELY .........填充(一个集合)那些不同的对象业务逻辑/数据层调用。

[Serializable]
public class ValueHolder
{
    public string Value01 { get; set; }                         
    public string Value02 { get; set; }     
}

public class ValueHolderCollection : List<ValueHolder>
{}