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标记中的标签吗?还就如何绑定一个额外的知识DataList的DataSet,sqldatareader,IList<>将是有益的。
谢谢你们。但是现在,如果可以说我必须像上面的例子一样绑定到1NameValueCollection1变量,我该在标记中写些什么。它没有属性或列,因此我无法编写类似Eval("propertyname")大多数内容的答案。就像我将其绑定到字符串数组一样。
那我现在写什么呢?
有人可以告诉我如何将此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)所在ItemTemplate的DataList控制字段中定义。<%# 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上进行所有链接,前提是假设正确构建了对象类。需要考虑的事情。
| 归档时间: |
|
| 查看次数: |
20150 次 |
| 最近记录: |