Welcome

首页 / 软件开发 / .NET编程技术 / 实现NBearDataSource控件 - 02-11 20:30 修订 - 新增Master/Deta

实现NBearDataSource控件 - 02-11 20:30 修订 - 新增Master/Deta2010-07-18 cnblogs teddyma很多朋友抱怨使用NBear时,和GridView和DetailsView等的绑定不便,为此,写了一个NBearDataSource控件,可以直接和其他DataSource一样进行绑定。

下面是一组示例,随示例包含了NBearDataSource控件和PagableRepeater控件的dll,源代码已经在NBear的V3.6.3以上版本中包含。

本示例演示了使用NBearDataSource控件进行CRUD、使用NBearDataSource控件和NBear的强类型查询语法进行可视化查询、使用PagableRepeater控件进行数据绑定和一个典型的基于NBearDataSource的Master/Detail实体CRUD示例。大家可以看到,使用NBearDataSource的情况下,数据绑定的操作过程大大简化了。

Web.config

1<?xml version="1.0"?>
2<configuration>
3 <configSections>
4 <section name="entityConfig" type="NBear.Common.EntityConfigurationSection, NBear.Common" />
5 </configSections>
6 <connectionStrings>
7 <add name="test access db" connectionString="Provider=Microsoft.Jet.OLEDB.4.0; Data Source=|DataDirectory|DSTest.mdb" providerName="access"/>
8 </connectionStrings>
9 <system.web>
10 <compilation debug="true" defaultLanguage="C#">
11 <assemblies>
12 <add assembly="System.Data.OracleClient, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
13 <add assembly="System.Transactions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/></assemblies>
14 </compilation>
15 <xhtmlConformance mode="Strict"/>
16 <customErrors mode="Off"/>
17 <authentication mode="None"/>
18 </system.web>
19 <entityConfig>
20 <includes>
21 <add key="Sample" value="~/EntityConfig.xml" />
22 </includes>
23 </entityConfig>
24</configuration>

第4和21行配置了EntityConfig.xml。

第7行使用nbear扩展的connectionstring配置语法设置connstr和providerName。注意这里可以使用类似的asp.net2.0下的sql2005中的|DataDirectory|来指定mdb的相对路径。(这个在标准的Access OleDb connstr语法中是不支持的,只在nbear中支持)。providerName也使用了简化语法access就是对应了Access数据库。

Default.aspx

1<%@ Page Language="C#" %>
2<%@ Register TagPrefix="nb" Namespace="NBear.Web.Data" Assembly="NBear.Web.Data" %>
3<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
4<html xmlns="http://www.w3.org/1999/xhtml" >
5<head runat="server">
6 <title>NBear DataSource Test</title>
7</head>
8<body>
9<form id="aspnetForm" runat="server">
10 <nb:NBearDataSource ID="TestDS" runat="server" ConnectionStringName="test access db"
11 TypeName="Entities.SimpleData" FilterExpression="{SimpleID} > 0" DefaultOrderByExpression="{SimpleID} DESC, {SimpleName}" />
12 <asp:GridView ID="TestGrid" runat="server" DataSourceID="TestDS" AllowSorting="true" AllowPaging="true"
13 PageSize="3" AutoGenerateEditButton="true" AutoGenerateDeleteButton="true" />
14 <br />
15 <asp:DetailsView ID="TestDetail" runat="server" DataSourceID="TestDS" DefaultMode="Insert"
16 AutoGenerateInsertButton="true" AutoGenerateRows="false">
17 <Fields><asp:BoundField DataField="SimpleName" HeaderText="Name" /></Fields>
18 </asp:DetailsView>
19</form>
20</body>
21</html>
Default.aspx没有Code Behind代码,纯粹是用asp.net 2.0的控件和NBearDataSource来CRUD。页面Default.aspx的运行效果就是,GridView可以RUD,DetailsView中可以C。