如何用中继器写出阵列?
string[,] month = { {"Januari", "Februari", "Mars", "Apri", "Maj", "Juni", "Juli", "Agusti", "September", "November", "Oktober", "December"},
{"01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"}
};
现在,我可以使用Container.DataItem,但是如何在一个位置获取第一个项目字符串,而在另一个位置获取第二个项目字符串?
<a href="Default.aspx?m=01">Januari</a>
最佳答案
可以使用数组的数组作为数据源(但不能使用二维数组),但是您必须以另一种方式排列它,以便每个内部数组都包含一个名称和一个数字。
不过,我更喜欢一种OOP方法,它提供了更多的结构,并且转发器代码变得更加简洁:
创建一个有关月份信息的类:
public class MonthInfo {
public string Name { get; private set; }
public string Number { get; private set; }
public MonthInfo(string name, string number) {
Name = name;
Number = number;
}
}
现在,您可以创建对象数组,用作转发器的数据源:
MonthInfo[] months = {
new MonthInfo("Januari", "01"),
new MonthInfo("Februari", "02"),
new MonthInfo("Mars", "03"),
new MonthInfo("April", "04"), // inte "Apri" ;)
new MonthInfo("Maj", "05"),
new MonthInfo("Juni", "06"),
new MonthInfo("Juli", "07"),
new MonthInfo("Augusti", "08"), // inte "Agusti" ;)
new MonthInfo("September", "09"),
new MonthInfo("Oktober", "10"), // kommer före november ;)
new MonthInfo("November", "11"),
new MonthInfo("December", "12")
};
MonthRepeater.DataSource = months;
在转发器中,您可以使用month信息类的属性:
<asp:Repeater runat="server" id="MonthRepeater">
<ItemTemplate>
<a href="Default.aspx?m=<%#Eval("Number")>"%><%#Eval("Name")%></a>
</ItemTemplate>
</asp:Repeater">
关于c# - 字符串[,]和转发器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/997949/