关于数据控件的嵌套问题

来源:互联网 发布:微信导入数据库失败 编辑:程序博客网 时间:2024/05/17 08:49

 这应该是入门级的热门话题。ASP.NET高度的封闭性给我们带来了方便,但这个方便需要我们首先付出较高的学习成本。因为如果要灵活运用其控件,一知半解是不行的,所以控件的高程度密封有时候反而成了我们的障碍。言归正转:

1、类数据控件嵌套不支持DataSource的控件,很简单,比如<asp:Lable Id="Lb_UserName" Text='<%#Eval("UserName")>'/>至于这个Eval("")是怎么解释,目前还没能很透彻,埋在以后再解释,现在只知道怎么用它。

2、数据控件嵌套数据控件,比如DataList嵌套DropDownList,网上很多大虾提供两种方法,

2.1、一种是在母控件的ItemDataBound事件里把子控件抽出来手动绑定。

2.2、一种是在DataSet设置好主从两个表的联系,然后在aspx页面设置子控件的DataSource设置其数据源。(这种本人很难透彻理解,故老是忘了怎么设置。

2.3、近日发现一种很适合本人理解,并且很好用的方法,就是通过在aspx页面调用后台数据源(通过方法获得,通常是DataTable)。如:

子控件:<asp:DropDownList ID="Ddlt_Permission" DataSource='<%#ListRoleChildDdlt_DataSource(Eval("Id").ToString()) %>' DataValueField="Permission"  runat="server"></asp:DropDownList>

其中Id是母控件数据源的一个列名,在此计算表达式后把结果作为参数调用后台方法:

Protected void DataTable ListRoleChildDdlt_DataSource(string RoleId){……};

原创粉丝点击