asp.net数据列表数据绑定

zac*_*ack 3 c# asp.net data-binding collections datalist

我正在使用ASP.NET/C# DataList

 <asp:DataList ID="EquipmentList" RepeatColumns="5".....  
Run Code Online (Sandbox Code Playgroud)

我在<ItemTemplate>标记内有以下行:

 <a href=""`><%# {I want to put something here but dont know how} %> </a>  
Run Code Online (Sandbox Code Playgroud)

在后面的代码中,我有一个NameValueCollection包含所有字符串的变量:

 NameValueCollection myListofStrings = //calling a method here that populates myListofStrings   
this.EquipmentList.DataSource =  myListofStrings;  
this.EquipmentList.DataBind();
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我如何将此NameValueCollection变量绑定到DataList标记中的标签吗?还就如何绑定一个额外的知识DataListDataSetsqldatareaderIList<>将是有益的。

谢谢你们。但是现在,如果可以说我必须像上面的例子一样绑定到1NameValueCollection1变量,我该在标记中写些什么。它没有属性或列,因此我无法编写类似Eval("propertyname")大多数内容的答案。就像我将其绑定到字符串数组一样。

那我现在写什么呢?

jco*_*and 5

有人可以告诉我如何将此NameValueCollection变量绑定到标记中的数据列表标记吗?另外,有关如何将数据列表绑定到数据集,sqldatareader,IList <>的其他知识也将有所帮助。坦克斯

List<ComplexObject>在后台代码中声明我的代码(比如说...在附加到OnClick的方法中),然后将其数据绑定,如下所示:

private void DoDataGetAndBind() {
  List<ComplexObject> complexObjects = _dataAccessLayer.GetComplexObjectsMethod(parameter1, parameter2, sortParameter);
  datalist1.DataSource = complexObjects;
  datalist1.DataBind();
}
Run Code Online (Sandbox Code Playgroud)

现在,请了解我的代码是如何简化的,我没有进行任何错误检查(例如,数据库是否已删除或您未返回任何结果),我也未定义参数或ComplexObject(因为我想您了解这些情况)工作)。

然后,在页面的.aspx中,我将在I 或(etc)所在ItemTemplateDataList控制字段中定义。<%# Eval('ComplexObjectFieldOneName') %><%# Eval('ComplexObjectFieldTwoName') %>

所以给一个

public class ComplexObject {
  public string MyFirstField {get;set;}
  public string MySecondField {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

我将.aspx中的字段定义为<%# Eval('MyFirstField') %><%# Eval('MySecondField') %>

好的,那是相当长的时间,所以我希望它确实有帮助。


另一点:您还可以使用ObjectDataSources(或派生类,例如SqlDataSource等),并在.aspx上进行所有链接,前提是假设正确构建了对象类。需要考虑的事情。