请问这两行代码是什么意思?
<html>
<head>
<script language= "C# " runat= "server ">
void Page_Load(Object Src, EventArgs E) {
if (!Page.IsPostBack) {
ArrayList values = new ArrayList();
values.Add (0);
values.Add (1);
values.Add (2);
values.Add (3);
values.Add (4);
values.Add (5);
values.Add (6);
DataList1.DataSource = values;
DataList1.DataBind();
}
}
String EvenOrOdd(int number) {
if ((number % 2) == 0)
return "偶数 ";
else
return "奇数 ";
}
</script>
</head>
<body>
<h3> <font face= "宋体 "> 到方法和表达式的数据绑定 </font> </h3>
<form runat=server>
<asp:DataList id= "DataList1 " runat= "server "
BorderColor= "black "
BorderWidth= "1 "
GridLines= "Both "
CellPadding= "3 "
CellSpacing= "0 "
>
<ItemTemplate>
数字值: <%# Container.DataItem %>
偶/奇: <%# EvenOrOdd((int) Container.DataItem) %>
</ItemTemplate>
</asp:datalist>
</form>
</body>
</html>
---------------------------------------
请问
数字值: <%# Container.DataItem %>
偶/奇: <%# EvenOrOdd((int) Container.DataItem) %>
这两行代码什么意思?
Container.???
是什么东东?
我看教程看不懂,谢谢
[解决办法]
详细参照
http://chs.gotdotnet.com/quickstart/aspplus/doc/webdatabinding.aspx
<%# %> 是数据绑定的写法,
EvenOrOdd是个函数,,参数是(int) Container.DataItem
[解决办法]
Container 表示直接层次结构中支持 System.Web.UI.INamingContainer 标记接口的第一个控件。在这里Container 解析为 DataList 类型的对象,而该类型具有 DataItem 属性。当 DataList 在 DataSource 集合上迭代时,DataItem 随之包含该集合的当前项
EvenOrOdd((int) Container.DataItem)
DataList 在 DataSource 集合上迭代时,将值传到方法 EvenOrOdd(int number) 该方法根据传入的int值判断其是 偶数 还是 奇数 ,并返回显示
[解决办法]
都解释得很详细啦~
<%# %> 是 asp。net 特定的绑定语法,经编译器解析之后,
1.
<%# Container.DataItem %> 实际上输出 Container.DataItem 的值,而Container.DataItem是对象,内部其实是调用了ToString方法,即输出 Container.DataItem.ToString()
2.
<%# EvenOrOdd((int) Container.DataItem) %> 实际上是调用方法 EvenOrOdd 方法,并输出返回结果,对于参数(int) Container.DataItem,首先将 Container.DataItem (类型为object)强制转换为 int ,然后传入
hope helpful!