首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

请教这两行代码是什么意思

2012-01-03 
请问这两行代码是什么意思?htmlheadscriptlanguage C# runat server voidPage_Load(ObjectSrc

请问这两行代码是什么意思?
<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!

热点排行