我正在使用ASP.NET/C# DataList.
<asp:DataList ID="EquipmentList" RepeatColumns="5".....
我在< ItemTemplate>内有以下行:标签:
<a href=""`><%# {I want to put something here but dont know how} %> </a>
在后面的代码中,我有一个NameValueCollection变量,其中包含所有字符串:
NameValueCollection myListofStrings = //calling a method here that populates myListofStrings
this.EquipmentList.DataSource = myListofStrings;
this.EquipmentList.DataBind();
有人可以告诉我如何将此NameValueCollection变量绑定到标记中的DataList标记吗?还有关于如何将数据列表绑定到数据集的附加知识,sqldatareader,IList<>.会有所帮助.
谢谢你们.但是现在,如果让我说必须像上面的例子那样绑定到1NameValueCollection1变量,我该在标记内写些什么.它没有属性或列,因此我无法编写类似Eval(“ propertyname”)之类的东西,这是这里大多数人给我的答案.就像我将其绑定到字符串数组一样.
那我现在写什么呢?
解决方法:
Please can someone tell me how to bind
this NameValueCollection variable to
my datalist tag in the markup? Also
additional knowledge on how to bind a
datalist to a dataset, sqldatareader,
IList<> would be helpful. Thannks
我声明了List< ComplexObject>在我的代码隐藏中(比如说…在附加到OnClick的方法中),然后像这样对它进行数据绑定:
private void DoDataGetAndBind() {
List<ComplexObject> complexObjects = _dataAccessLayer.GetComplexObjectsMethod(parameter1, parameter2, sortParameter);
datalist1.DataSource = complexObjects;
datalist1.DataBind();
}
现在,请了解我的代码是如何简化的,我没有进行任何错误检查(例如,如果数据库已删除或您未返回任何结果),并且我没有定义参数或ComplexObject(因为我想您了解这些情况)工作).
然后,在页面的.aspx中,我将在DataList控件字段的ItemTemplate中定义I<%#Eval('ComplexObjectFieldOneName')%>或<%#Eval('ComplexObjectFieldTwoName')%> (等等).
所以给一个
public class ComplexObject {
public string MyFirstField {get;set;}
public string MySecondField {get;set;}
}
我将.aspx中的字段定义为<%#Eval('MyFirstField')%>和<%#Eval('MySecondField')%>
好的,那是相当长的时间,所以我希望它确实能有所帮助.
另一点:您还可以使用ObjectDataSources(或派生类,例如SqlDataSource等),并在.aspx上进行所有链接,前提是假设正确构建了对象类.需要考虑的事情.