World Of ιζσεα.

The Dark Time Will Pass

 

NetTiers学习笔记08---Entity层的扩展和EntityDataSource的使用方法

扩展1个属性 ContractPersonName , 这个属性需要Deepload Users表 才能得到
所以加了判断,如果没有DeepLoad则会抛出异常
 1     public partial class Contract : ContractBase
 2     {
 3         #region Constructors
 4 
 5         ///<summary>
 6         /// Creates a new <see cref="Contract"/> instance.
 7         ///</summary>
 8         public Contract() : base() { }
 9 
10 
11         #endregion
12 
13         /// <summary>
14         /// 合同签约人 - -b 名字比较烂
15         /// </summary>
16         public string ContractPersonName
17         {
18             get
19             {
20                 if (this.FContractPerson != null && this.FContractPersonSource == null)
21                     throw new Exception("没有使用Deepload");
22 
23                 if (this.FContractPerson == null)
24                     return String.Empty;
25 
26                 return this.FContractPersonSource.FName;
27             }
28         }
29 
30     }

建一个实体数据源和一个GridView,允许DeepLoad但不允许递归,不允许事务,允许分页和排序,使用GetPaged方法进行查询
DeepLoad Users对象,再添加5个参数,4个输入,1个输出,PageIndex,OrderBy和PageSize都取GridView的属性
最后再添加一个过滤的参数... 
 1 <asp:DropDownList ID="NameList" AutoPostBack="true" runat="server">
 2     <asp:ListItem Value="">All</asp:ListItem>
 3     <asp:ListItem>iCaca</asp:ListItem>
 4     <asp:ListItem>Sun</asp:ListItem>
 5     <asp:ListItem>Grubby</asp:ListItem>
 6     <asp:ListItem>Sky</asp:ListItem>
 7     <asp:ListItem>Moon</asp:ListItem>
 8 </asp:DropDownList>
 9 <data:ContractDataSource ID="source" runat="server" EnablePaging="True" EnableSorting="True"
10     EnableTransaction="False" SelectMethod="GetPaged" EnableDeepLoad="True">
11     <DeepLoadProperties Method="IncludeChildren" Recursive="False">
12         <Types>
13             <data:ContractProperty Name="Users" />
14         </Types>
15     </DeepLoadProperties>
16     <Parameters>
17         <data:SqlParameter Name="WhereClause" UseParameterizedFilters="false">
18             <Filters>
19                 <data:ContractFilter Column="FContractPerson" ControlID="NameList" />
20             </Filters>
21         </data:SqlParameter>
22         <asp:ControlParameter Name="OrderBy" ControlID="GridView1" PropertyName="SortExpression"
23             Type="String" />
24         <asp:ControlParameter Name="PageIndex" ControlID="GridView1" PropertyName="PageIndex"
25             Type="Int32" />
26         <asp:ControlParameter Name="PageSize" ControlID="GridView1" PropertyName="PageSize"
27             Type="Int32" />
28         <asp:Parameter Name="RecordCount" Type="Int32" />
29     </Parameters>
30 </data:ContractDataSource>
31 <asp:GridView ID="GridView1" runat="server" AllowPaging="True" DataKeyNames="FId"
32     DataSourceID="source" AllowSorting="True">
33     <Columns>
34         <asp:BoundField DataField="ContractPersonName" />
35     </Columns>
36 </asp:GridView>
37 

到底是网页绑定好还是后台绑定好,也要看具体的情况而定~
如果太复杂...还是后台吧...

posted on 2007-07-10 15:01  Ψιζσεα.  阅读(3502)  评论(4编辑  收藏  举报

导航