使用Dev ASPxGridView对接后台数据访问层
默认ASPxGridView使用DataSource可以很方便,但SQL代码写在ASPX文件中,对于分层开发不力。所以尝试对接后台接口,然后通过自定义修改、插入、删除事件中调用后台接口来处理数据。对于动态绑定数据源,需要在ASPxGridView设计中先创建好要绑定的Column,并EnableEditing,EnableInserting,EnableDeleting
慧都解决方案(为您提供贴近企业应用的方案) | HOOPS 3D Framework(3D框架功能集成) |
Thebrain7思维导图革命时代 | DevExpress中文网 |
using System;
using System.Collections.Generic;
using System.Data;
using DevExpress.Web.ASPxGridView;
using System.Web;
.using System.Web.UI;
using System.Web.UI.WebControls;
public partial class Main : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
GetData(ASPxGridView1);
}
protected void GetData(ASPxGridView grid)
{
List<Category> categories = new List<Category>();
DataSet ds= msSql.SqlExecuteDataSet("select * from categories");
foreach (DataTable table in ds.Tables)
{
foreach (DataRow row in table.Rows)
{
categories.Add(new Category(Convert.ToInt16(row[0]),
Convert.ToString(row[1]),Convert.ToString(row[2])));
}
}
grid.DataSource = categories;
grid.DataBind();
}
protected void UpdateData
(object CategoryID,object CategoryName, object Description)
{
string s = String.Format
("Update categories set CategoryName=
'{0}',Description='{1}'
where CategoryID={2}", CategoryName, Description, CategoryID);
msSql.SqlExecuteNonQuery(s);
}
protected void InsertData
object CategoryID,object CategoryName, object Description)
{
string s = String.Format("insert into categories
(CategoryID,CategoryName,Description) values
({0},'{1}','{2}')", CategoryID, CategoryName, Description);
msSql.SqlExecuteNonQuery(s);
}
.protected void DeleteData(object CategoryID)
{
string s = String.Format
("delete from categories where CategoryID={0}", CategoryID);
msSql.SqlExecuteNonQuery(s);
.}
protected void ASPxGridView1_RowUpdating(object sender, DevExpress.Web.Data.ASPxDataUpdatingEventArgs e)
{
UpdateData(e.OldValues["CategoryID"],e.NewValues["CategoryName"],
e.NewValues["Description"]);
e.Cancel = true;
(sender as ASPxGridView).CancelEdit();
GetData((sender as ASPxGridView));
}
protected void ASPxGridView1_RowDeleting(object sender, DevExpress.Web.Data.ASPxDataDeletingEventArgs e)
{
DeleteData(e.Keys[0]);
e.Cancel = true;
GetData((sender as ASPxGridView));
}
protected void ASPxGridView1_RowInserting(object sender, DevExpress.Web.Data.ASPxDataInsertingEventArgs e)
{
InsertData(e.NewValues["CategoryID"],
e.NewValues["CategoryName"], e.NewValues["Description"]);
. e.Cancel = true;
(sender as ASPxGridView).CancelEdit();
GetData((sender as ASPxGridView));
}
}
public class Category
{
private int _CategoryID;
public int CategoryID
{
get { return _CategoryID; }
set { _CategoryID = value; }
}
public string CategoryName { get; set; }
public string Description { get; set; }
public Category(int categoryid, string categoryname, string description)
{
CategoryID = categoryid;
CategoryName = categoryname;
Description = description;
}
}