首页 新闻 会员 周边

对CS里面的代码逐行解释(初学者)

0
悬赏园豆:50 [已解决问题] 解决于 2014-04-03 16:57

aspx: <x:DropDownList ID="ddlCategoryID" runat="server" Label="选项类型"AutoPostBack="false">
         </x:DropDownList>

cs:  private void InitData()
        {
            List<ProductCategoryDTO> categoryList = new ProductCategoryBLL().GetList();
            categoryList.Add(new ProductCategoryDTO() { CategoryID = 0, Name = "不限", IsActive = "T" });
            ddlCategoryID.DataSource = categoryList.Where(t => t.IsActive == "T").OrderBy(t => t.CategoryID);

            ddlCategoryID.DataTextField = "Name";
            ddlCategoryID.DataValueField = "CategoryID";
            ddlCategoryID.DataBind();

         
         
        }

问题补充:

经过自己的研究,只有这个看不懂了

(t => t.IsActive == "T").OrderBy(t => t.CategoryID)

 t是什么

还有上面的List<>泛型不会,希望得到帮助

麦田清风的主页 麦田清风 | 初学一级 | 园豆:7
提问于:2014-04-03 14:28
< >
分享
最佳答案
0

获取数据源,绑定数据。

收获园豆:25
lucika.zh | 初学一级 |园豆:62 | 2014-04-03 14:56

ddlCategoryID.DataTextField = "Name";
            ddlCategoryID.DataValueField = "CategoryID";这2句我知道意思了,上面三行和最后一行能不能解释下

麦田清风 | 园豆:7 (初学一级) | 2014-04-03 14:58

@new_ITP: 第一行是获取数据,数据是一个list集合

第二行,往集合中添加一个对象

最好一样,必须这么用,绑定数据源时,必用,调用系统方法

lucika.zh | 园豆:62 (初学一级) | 2014-04-03 15:27

@lucika.zh:谢谢! where条件里的(t => t.IsActive == "T").OrderBy(t => t.CategoryID)这个能不能解释下,都是什么玩意啊,没见过=>,臆测大于等于后面也不是数值啊 ,到底上面意思啊

麦田清风 | 园豆:7 (初学一级) | 2014-04-03 15:29

@new_ITP: 第一个条件是IsActive属性等于T,第二个,是排序。写法是基于对象的查询。

lucika.zh | 园豆:62 (初学一级) | 2014-04-03 15:44

@new_ITP: 结贴吧。问题已经得到圆满的解决了。

lucika.zh | 园豆:62 (初学一级) | 2014-04-03 16:55
其他回答(2)
0

那个就是Lambda,园子里有很多这类的文章,搜一下就可以了

Where(t => t.IsActive == "T")相当于在categoryList中找出IsActive等于T的对象

OrderBy(t => t.CategoryID)相当于根据CategoryID进行升序排列

收获园豆:15
鳳梨酥 | 园豆:287 (菜鸟二级) | 2014-04-03 15:38

这么说t=>t.IsActive是一个整体啊,不是一个语句。。是这样吗

支持(0) 反对(0) 麦田清风 | 园豆:7 (初学一级) | 2014-04-03 15:43
0

t ,随便写别的什么字母都行,单词也行,t  就是代表序列中的单个项  这样理解 ,循环搜索出序列中IsActive属性等于T的项

收获园豆:10
开山怪不怪 | 园豆:544 (小虾三级) | 2014-04-03 16:36

我现在已经理解了整条语句是什么意思了,t代表序列中的单个项,那t=>t.attribute我还是没法理解,如果筛选出IsActive属性等于T的,直接IsActive="T"不就好了或者t.IsActive="T",我现在的问题就在于在=>这里堵住了,走不出去了,没法理解

支持(0) 反对(0) 麦田清风 | 园豆:7 (初学一级) | 2014-04-03 16:47

@new_ITP: 都有一些规范的写法

支持(0) 反对(0) 开山怪不怪 | 园豆:544 (小虾三级) | 2014-04-03 16:58
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册