這節,我們將通過使用DevExpress的ASPxGridView控件,實現對數據的CRUD操作。
首先,我們在解決方案中,添加一個網站:
圖一 添加新網站
圖二 添加DevExpress.Data.v12.2.dll,DevExpress.Xpo.v12.2.dll,以及XPOModel的引用
圖三 從工具欄拖放ASPxGridView與XpoDataSource
圖四 設置XpoDataSource的類型名稱 TypeName,先選擇控件,右鍵-屬性(或點擊右上角小箭頭)
圖五 點擊TypeName屬性下拉選擇
圖六 選這XPOModel.DemoDB.Users
圖七 選擇ASPxGridView,右鍵屬性(或點擊右上角箭頭),打開任務屬性設置
圖八 選擇DataSource,設置主題,設置分頁,可編輯、新增,刪除
經過上述設置,Html代碼也發生變化,如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <%@ Register Assembly="DevExpress.Xpo.v12.2.Web, Version=12.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" Namespace="DevExpress.Xpo" TagPrefix="dx" %> <%@ Register Assembly="DevExpress.Web.v12.2, Version=12.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" Namespace="DevExpress.Web.ASPxGridView" TagPrefix="dx" %> <%@ Register assembly="DevExpress.Web.v12.2, Version=12.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" namespace="DevExpress.Web.ASPxEditors" tagprefix="dx" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> </head> <body> <form id="form1" runat="server"> <div> <dx:ASPxGridView ID="ASPxGridView1" runat="server" AutoGenerateColumns="False" DataSourceID="XpoDataSource1" KeyFieldName="UserID" Theme="Aqua"> <Columns> <dx:GridViewCommandColumn VisibleIndex="0"> <EditButton Visible="True"> </EditButton> <NewButton Visible="True"> </NewButton> <DeleteButton Visible="True"> </DeleteButton> </dx:GridViewCommandColumn> <dx:GridViewDataTextColumn FieldName="UserID" ReadOnly="True" VisibleIndex="1"> </dx:GridViewDataTextColumn> <dx:GridViewDataTextColumn FieldName="UserName" VisibleIndex="2"> </dx:GridViewDataTextColumn> <dx:GridViewDataTextColumn FieldName="FirstName" VisibleIndex="3"> </dx:GridViewDataTextColumn> <dx:GridViewDataTextColumn FieldName="LastName" VisibleIndex="4"> </dx:GridViewDataTextColumn> <dx:GridViewDataTextColumn FieldName="MiddleName" VisibleIndex="5"> </dx:GridViewDataTextColumn> <dx:GridViewDataTextColumn FieldName="EmailID" VisibleIndex="6"> </dx:GridViewDataTextColumn> </Columns> </dx:ASPxGridView> </div> <dx:XpoDataSource ID="XpoDataSource1" runat="server" TypeName="XPOModel.DemoDB.Users"></dx:XpoDataSource> </form> </body> </html>
經過上述設置,主題並未生效,需要添加DevExpress.Web.v12.2.dll的引用
圖九 添加DevExpress.Web引用
此時點擊Default.aspx進行瀏覽,打開的卻是報錯界面
圖十 默認數據庫未能生成,報錯(如果上述目錄不存在,就會產生該錯誤)
這時,我們通過上面章節已經學習的方法,將Session與數據層綁定。
在Web.config中添加數據庫連接的配置節
<connectionStrings> <add name="ConnectionString" connectionString="Data Source=.;Initial Catalog=DemoDB;user id=demo;password=demo;Integrated Security=false" providerName="System.Data.SqlClient" /> </connectionStrings>
修改Default.aspx.cs代碼,將Session建立到數據層的綁定,並且設置XpoDataSource的Session
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Configuration; using DevExpress.Xpo; using DevExpress.Xpo.DB; public partial class _Default : System.Web.UI.Page { protected void Page_Init(object sender, EventArgs e) { string provider = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;//獲取數據庫連接 IDataLayer datalayer = new SimpleDataLayer(XpoDefault.GetConnectionProvider(provider, AutoCreateOption.DatabaseAndSchema));//建立數據層XPO獨有的 DevExpress.Xpo.Session session = new DevExpress.Xpo.Session(datalayer); //將數據層和會話綁定 XpoDataSource1.Session = session; } protected void Page_Load(object sender, EventArgs e) { } }
選擇Default.aspx頁面,右鍵-在瀏覽器中查看
圖十一 數據綁定
圖十二 點擊Edit(編輯)
編輯完成后,點擊Update(更新),完成對數據行的修改。
圖十三 點堝New(新增),打開新增操作視圖
同理,點擊Delete,將執行數據行的刪除操作,但是這個刪除,沒有提醒,我們可以增加行為。
<SettingsBehavior ConfirmDelete="true" />
<SettingsText ConfirmDelete="確定刪除嗎?" />
<dx:ASPxGridView ID="ASPxGridView1" runat="server" AutoGenerateColumns="False" DataSourceID="XpoDataSource1" KeyFieldName="UserID" Theme="Aqua"> <Columns> <dx:GridViewCommandColumn VisibleIndex="0"> <EditButton Visible="True"> </EditButton> <NewButton Visible="True"> </NewButton> <DeleteButton Visible="True"> </DeleteButton> </dx:GridViewCommandColumn> <dx:GridViewDataTextColumn FieldName="UserID" ReadOnly="True" VisibleIndex="1"> </dx:GridViewDataTextColumn> <dx:GridViewDataTextColumn FieldName="UserName" VisibleIndex="2"> </dx:GridViewDataTextColumn> <dx:GridViewDataTextColumn FieldName="FirstName" VisibleIndex="3"> </dx:GridViewDataTextColumn> <dx:GridViewDataTextColumn FieldName="LastName" VisibleIndex="4"> </dx:GridViewDataTextColumn> <dx:GridViewDataTextColumn FieldName="MiddleName" VisibleIndex="5"> </dx:GridViewDataTextColumn> <dx:GridViewDataTextColumn FieldName="EmailID" VisibleIndex="6"> </dx:GridViewDataTextColumn> </Columns> <SettingsBehavior ConfirmDelete="true" /> <SettingsText ConfirmDelete="確定刪除嗎?" /> </dx:ASPxGridView>
再次點擊Delete時,會彈出提示對話框,點擊確定后,執行刪除操作。
圖十四 刪除確認對話框
至此,沒有添加多余的代碼,已經完全由ASPxGridView自身,完成了對數據庫表的CRUD操作。
博文作者:挪威森林(Coding of life)
博文出處:http://www.cnblogs.com/allenlf/
主要研究:Web開發框架、ORM框架、WCF框架、醫療行業軟件開發(HRP、EMR、CP、OA)