Visual Studio2005 GridView演示多层Demo研究心得

来源:互联网 发布:netty rpc 网络 编辑:程序博客网 时间:2024/06/15 21:24

1、提示错误:在应用程序或全局主题目录中无法找到主题“Default”。
     解决:把App_Themes文件夹放入Web目录中。

2、在VS2005运行此解决方案
    提示错误:请在此解决方案中添加一个引用库项目的可执行项目。
    解决:右键Web目录,设为启动项目。

 

Business,Componets,DataProvider,WebFacade都是类库。就是包。
引用:命名空间,类库。就是导入。
类库:.net组件,运行库DLL
         COM组件,类型库DLL
         自定义项目用于创建类库,最后生成DLL

 

Default.aspx,
<%@ Register Src="Controls/UserList.ascx" TagName="UserList" TagPrefix="uc1" %>
aspx是IE直接访问的页面,而ascx是用户控件,一般是用来重用。
ascx不能直接访问,只能插入aspx页面呈现。要用用户控件,先注册。

 

UserList.ascx,
<%@ Control Language="C#" Inherits="VS2005.Facade.Controls.UserList,WebFacade" %>
继承类包WebFacade中的,UserList类。
命名空间,就是包
facade,正面。

 

UserList.cs,

VS2005.DataProvider.User,在这里实现了增,删,改,查功能。
对数据库的连接,执行操作,在Database.cs文件,VS2005.DataProvider.DbHelper类,
connectionString =
System.Configuration.ConfigurationManager.AppSettings["DbConnectionString"];
ConfigurationManager不能指定配置文件,因为这个静态类设计出来是就是给来读默认的config文件的,app.config或者是web项目里的webconfig。

在System.Configuration命名空间下找不到 ConfigurationManager类,还要添加对System.Configuration.dll 文件的引用

 

VS2005.Business.User,创建DataProvider.User实例,并调用其方法操作数据。

 

VS2005.Components.UserData,定义了数据类,用于存储一条记录。相当于一个JavaBean。

 

VS2005.Facade.Controls.UserList,界面的显示及翻页。

 

当在创建一个空白解决方案后,再添加类库或者是网站,会发现只显示添加的内容,而没有显示解决方案,解决方法如下:
工具-->选项-->项目和解决方案-->常规-->总是显示解决方案

WebFacade ,作用:页面逻辑层,负责处理页面逻辑。Controls文件夹里面的2个类。
UserControlBase继承UserControl类。用户控件类。其实就是个控件。
UserControl 类与具有 .ascx 扩展名的文件相关联。这些文件在运行时被编译为 UserControl 对象,并被缓存在服务器内存中。用户控件的文件扩展名为 .ascx。

 

在程序中,自定义了一个UserList.ascx用户控件,
<%@ Control Language="C#" Inherits="VS2005.Facade.Controls.UserList,WebFacade" %>
这个控件继承了UserList.cs类。

 

Bind方法。
Eval是只读数据,Bind是可更新的.
 Bind 方法与 Eval 方法有一些相似之处,但也存在很大的差异。虽然可以像使用Eval方法一样使用Bind方法来检索数据绑定字段的值,但当数据可以被修改时,还是要使用Bind 方法。在 ASP.NET 中,数据绑定控件(如 GridView、DetailsView 和 FormView 控件)可自动使用数据源控件的更新、删除和插入操作。例如,如果已为数据源控件定义了 SQL Select、Insert、Delete 和 Update 语句,则通过使用 GridView、DetailsView 或 FormView 控件模板中的 Bind 方法,就可以使控件从模板中的子控件(TextBox)中提取值,并将这些值传递给数据源控件。然后数据源控件将执行适当的数据库命令。出于这个原因,在数据绑定控件的 EditItemTemplate 或 InsertItemTemplate 中要使用Bind 函数。
Bind 方法通常与输入控件一起使用,例如由编辑模式中的 GridView 行所呈现的 TextBox 控件。当数据绑定控件将这些输入控件作为自身呈现的一部分创建时,该方法便可提取输入值。单击行的 Update 按钮时,使用 Bind 语法绑定的每个控件属性值都会被提取出来,并传递给数据源控件以执行更新操作。
有些控件,如 GridView、FormView 和 DetailsView 控件,当它们通过 DataSourceID 属性绑定到数据源控件时,会通过隐式调用 DataBind 方法来执行绑定。但是,有些情况需要通过显式调用 DataBind 方法来执行绑定。
其中一种情况就是使用 DataSource 属性(而非 DataSourceID 属性)将某个控件绑定到数据源控件时。在这种情况下,需要显式调用 DataBind 方法,从而执行数据绑定和解析数据绑定表达式。本例,gvUserList.DataSource = User.GetUserList();

在UserList.ascx点击LinkButton,CommandName="Update",
可以执行UserList.cs的gvUserList_RowUpdating( )。

在gridview的事件中,有很多RowCommand事件。页面设计模式下,在“属性”面板中点击“事件”才出来。