如何用中继器写出阵列?

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/

10-10 05:15