ExtJS中的表格功能非常强大,包括了排序、缓存、拖动、隐藏某一列、自动显示行号、列汇总、单元格编辑等实用功能。
表格由类Ext.grid.GridPanel定义,继承自Panel,其xtype为grid。ExtJS中,表格Grid必须包含列定义信息,并指定表格的数据存储器Store。表格的列信息由类Ext.grid.ColumnModel定义、而表格的数据存储器由Ext.data.Store定义,数据存储器根据解析的数据不同分为JsonStore、SimpleStroe、GroupingStore等。
但在很多地方的使用都不是详细 下面就针对 这个控件的排序 和列的点击等功能的处理贴出代码
如下图所示:
页面展示的内容(界面没有美化 只是用于功能能的实现)
页面中各行各列都可以实现的点击弹出window 控件的效果获取制定列的信息 如图:
判断某行 某列的点击 可以控制显示的内容并弹出window控件的效果 如下图:
禁止点击的使用 并做逻辑判断后可以实现复杂的其他功能 如下图:
但仅仅弹出window控件进行显示;这完全不能满足我们的需要 为此可以在window的空间中在添加按钮 或逻辑控制回传处理
比如刷新主页 提交 重置等 可能关键还是在于刷新主页的GridPanel 控件值 效果如下:
在实际使用中GridPanel这个控件的刷新按钮 的功能需要注意 我们代码的加载的地方是否加了这个验证 if (!Ext.IsAjaxRequest)
这是页面的.aspx的代码
using System;
using System.Data;
using System.Collections.Generic;
using LTP.Common;
using Model;
namespace BLL
{
/// <summary>
/// 业务逻辑类DepartmentBLL 的摘要说明。
/// </summary>
public class DepartmentBLL
{
private readonly DAL.DepartmentDAL dal=new DAL.DepartmentDAL();
public DepartmentBLL()
{}
#region 成员方法
/// <summary>
/// 是否存在该记录
/// </summary>
public bool Exists(string id)
{
return dal.Exists(id);
}
/// <summary>
/// 增加一条数据
/// </summary>
public void Add(Model.DepartmentModel model)
{
dal.Add(model);
}
/// <summary>
/// 更新一条数据
/// </summary>
public void Update(Model.DepartmentModel model)
{
dal.Update(model);
}
/// <summary>
/// 删除一条数据
/// </summary>
public void Delete(string id)
{
dal.Delete(id);
}
/// <summary>
/// 得到一个对象实体
/// </summary>
public Model.DepartmentModel GetModel(string id)
{
return dal.GetModel(id);
}
/// <summary>
/// 得到一个对象实体,从缓存中。
/// </summary>
public Model.DepartmentModel GetModelByCache(string id)
{
string CacheKey = "DepartmentModelModel-" + id;
object objModel = LTP.Common.DataCache.GetCache(CacheKey);
if (objModel == null)
{
try
{
objModel = dal.GetModel(id);
if (objModel != null)
{
int ModelCache = LTP.Common.ConfigHelper.GetConfigInt("ModelCache");
LTP.Common.DataCache.SetCache(CacheKey, objModel, DateTime.Now.AddMinutes(ModelCache), TimeSpan.Zero);
}
}
catch{}
}
return (Model.DepartmentModel)objModel;
}
/// <summary>
/// 获得数据列表
/// </summary>
public DataSet GetList(string strWhere)
{
return dal.GetList(strWhere);
}
/// <summary>
/// 获得前几行数据
/// </summary>
public DataSet GetList(int Top,string strWhere,string filedOrder)
{
return dal.GetList(Top,strWhere,filedOrder);
}
/// <summary>
/// 获得数据列表
/// </summary>
public List<Model.DepartmentModel> GetModelList(string strWhere)
{
DataSet ds = dal.GetList(strWhere);
return DataTableToList(ds.Tables[0]);
}
/// <summary>
/// 获得数据列表
/// </summary>
public List<Model.DepartmentModel> DataTableToList(DataTable dt)
{
List<Model.DepartmentModel> modelList = new List<Model.DepartmentModel>();
int rowsCount = dt.Rows.Count;
if (rowsCount > 0)
{
Model.DepartmentModel model;
for (int n = 0; n < rowsCount; n++)
{
model = new Model.DepartmentModel();
model.id=dt.Rows[n]["id"].ToString();
model.Departmentname=dt.Rows[n]["Departmentname"].ToString();
if(dt.Rows[n]["TaxationAddressID"].ToString()!="")
{
model.TaxationAddressID=int.Parse(dt.Rows[n]["TaxationAddressID"].ToString());
}
model.Parent=dt.Rows[n]["Parent"].ToString();
model.Telephone=dt.Rows[n]["Telephone"].ToString();
model.Fax=dt.Rows[n]["Fax"].ToString();
model.Address=dt.Rows[n]["Address"].ToString();
model.Emaile=dt.Rows[n]["Emaile"].ToString();
model.Flag=dt.Rows[n]["Flag"].ToString();
model.Status=dt.Rows[n]["Status"].ToString();
if(dt.Rows[n]["UpdateTime"].ToString()!="")
{
model.UpdateTime=DateTime.Parse(dt.Rows[n]["UpdateTime"].ToString());
}
if(dt.Rows[n]["CreateTime"].ToString()!="")
{
model.CreateTime=DateTime.Parse(dt.Rows[n]["CreateTime"].ToString());
}
modelList.Add(model);
}
}
return modelList;
}
/// <summary>
/// 获得数据列表
/// </summary>
public DataSet GetAllList()
{
return GetList("");
}
/// <summary>
/// 获得数据列表
/// </summary>
//public DataSet GetList(int PageSize,int PageIndex,string strWhere)
//{
//return dal.GetList(PageSize,PageIndex,strWhere);
//}
#endregion 成员方法
}
}
这是.cs文件代码
using System;
using System.Data;
using System.Text;
using System.Data.SqlClient;
using Maticsoft.DBUtility;//请先添加引用
namespace DAL
{
/// <summary>
/// 数据访问类DepartmentDAL。
/// </summary>
public class DepartmentDAL
{
public DepartmentDAL()
{}
#region 成员方法
/// <summary>
/// 是否存在该记录
/// </summary>
public bool Exists(string id)
{
StringBuilder strSql=new StringBuilder();
strSql.Append("select count(1) from Department");
strSql.Append(" where id=@id ");
SqlParameter[] parameters = {
new SqlParameter("@id", SqlDbType.VarChar,50)};
parameters[0].Value = id;
return DbHelperSQL.Exists(strSql.ToString(),parameters);
}
/// <summary>
/// 增加一条数据
/// </summary>
public void Add(Model.DepartmentModel model)
{
StringBuilder strSql=new StringBuilder();
strSql.Append("insert into Department(");
strSql.Append("id,Departmentname,TaxationAddressID,Parent,Telephone,Fax,Address,Emaile,Flag,Status,UpdateTime,CreateTime)");
strSql.Append(" values (");
strSql.Append("@id,@Departmentname,@TaxationAddressID,@Parent,@Telephone,@Fax,@Address,@Emaile,@Flag,@Status,@UpdateTime,@CreateTime)");
SqlParameter[] parameters = {
new SqlParameter("@id", SqlDbType.VarChar,50),
new SqlParameter("@Departmentname", SqlDbType.VarChar,500),
new SqlParameter("@TaxationAddressID", SqlDbType.Int,4),
new SqlParameter("@Parent", SqlDbType.VarChar,50),
new SqlParameter("@Telephone", SqlDbType.VarChar,50),
new SqlParameter("@Fax", SqlDbType.VarChar,50),
new SqlParameter("@Address", SqlDbType.VarChar,2000),
new SqlParameter("@Emaile", SqlDbType.VarChar,100),
new SqlParameter("@Flag", SqlDbType.VarChar,50),
new SqlParameter("@Status", SqlDbType.VarChar,50),
new SqlParameter("@UpdateTime", SqlDbType.DateTime),
new SqlParameter("@CreateTime", SqlDbType.DateTime)};
parameters[0].Value = model.id;
parameters[1].Value = model.Departmentname;
parameters[2].Value = model.TaxationAddressID;
parameters[3].Value = model.Parent;
parameters[4].Value = model.Telephone;
parameters[5].Value = model.Fax;
parameters[6].Value = model.Address;
parameters[7].Value = model.Emaile;
parameters[8].Value = model.Flag;
parameters[9].Value = model.Status;
parameters[10].Value = model.UpdateTime;
parameters[11].Value = model.CreateTime;
DbHelperSQL.ExecuteSql(strSql.ToString(),parameters);
}
/// <summary>
/// 更新一条数据
/// </summary>
public void Update(Model.DepartmentModel model)
{
StringBuilder strSql=new StringBuilder();
strSql.Append("update Department set ");
strSql.Append("Departmentname=@Departmentname,");
strSql.Append("TaxationAddressID=@TaxationAddressID,");
strSql.Append("Parent=@Parent,");
strSql.Append("Telephone=@Telephone,");
strSql.Append("Fax=@Fax,");
strSql.Append("Address=@Address,");
strSql.Append("Emaile=@Emaile,");
strSql.Append("Flag=@Flag,");
strSql.Append("Status=@Status,");
strSql.Append("UpdateTime=@UpdateTime,");
strSql.Append("CreateTime=@CreateTime");
strSql.Append(" where id=@id ");
SqlParameter[] parameters = {
new SqlParameter("@id", SqlDbType.VarChar,50),
new SqlParameter("@Departmentname", SqlDbType.VarChar,500),
new SqlParameter("@TaxationAddressID", SqlDbType.Int,4),
new SqlParameter("@Parent", SqlDbType.VarChar,50),
new SqlParameter("@Telephone", SqlDbType.VarChar,50),
new SqlParameter("@Fax", SqlDbType.VarChar,50),
new SqlParameter("@Address", SqlDbType.VarChar,2000),
new SqlParameter("@Emaile", SqlDbType.VarChar,100),
new SqlParameter("@Flag", SqlDbType.VarChar,50),
new SqlParameter("@Status", SqlDbType.VarChar,50),
new SqlParameter("@UpdateTime", SqlDbType.DateTime),
new SqlParameter("@CreateTime", SqlDbType.DateTime)};
parameters[0].Value = model.id;
parameters[1].Value = model.Departmentname;
parameters[2].Value = model.TaxationAddressID;
parameters[3].Value = model.Parent;
parameters[4].Value = model.Telephone;
parameters[5].Value = model.Fax;
parameters[6].Value = model.Address;
parameters[7].Value = model.Emaile;
parameters[8].Value = model.Flag;
parameters[9].Value = model.Status;
parameters[10].Value = model.UpdateTime;
parameters[11].Value = model.CreateTime;
DbHelperSQL.ExecuteSql(strSql.ToString(),parameters);
}
/// <summary>
/// 删除一条数据
/// </summary>
public void Delete(string id)
{
StringBuilder strSql=new StringBuilder();
strSql.Append("delete from Department ");
strSql.Append(" where id=@id ");
SqlParameter[] parameters = {
new SqlParameter("@id", SqlDbType.VarChar,50)};
parameters[0].Value = id;
DbHelperSQL.ExecuteSql(strSql.ToString(),parameters);
}
/// <summary>
/// 得到一个对象实体
/// </summary>
public Model.DepartmentModel GetModel(string id)
{
StringBuilder strSql=new StringBuilder();
strSql.Append("select top 1 id,Departmentname,TaxationAddressID,Parent,Telephone,Fax,Address,Emaile,Flag,Status,UpdateTime,CreateTime from Department ");
strSql.Append(" where id=@id ");
SqlParameter[] parameters = {
new SqlParameter("@id", SqlDbType.VarChar,50)};
parameters[0].Value = id;
Model.DepartmentModel model=new Model.DepartmentModel();
DataSet ds=DbHelperSQL.Query(strSql.ToString(),parameters);
if(ds.Tables[0].Rows.Count>0)
{
model.id=ds.Tables[0].Rows[0]["id"].ToString();
model.Departmentname=ds.Tables[0].Rows[0]["Departmentname"].ToString();
if(ds.Tables[0].Rows[0]["TaxationAddressID"].ToString()!="")
{
model.TaxationAddressID=int.Parse(ds.Tables[0].Rows[0]["TaxationAddressID"].ToString());
}
model.Parent=ds.Tables[0].Rows[0]["Parent"].ToString();
model.Telephone=ds.Tables[0].Rows[0]["Telephone"].ToString();
model.Fax=ds.Tables[0].Rows[0]["Fax"].ToString();
model.Address=ds.Tables[0].Rows[0]["Address"].ToString();
model.Emaile=ds.Tables[0].Rows[0]["Emaile"].ToString();
model.Flag=ds.Tables[0].Rows[0]["Flag"].ToString();
model.Status=ds.Tables[0].Rows[0]["Status"].ToString();
if(ds.Tables[0].Rows[0]["UpdateTime"].ToString()!="")
{
model.UpdateTime=DateTime.Parse(ds.Tables[0].Rows[0]["UpdateTime"].ToString());
}
if(ds.Tables[0].Rows[0]["CreateTime"].ToString()!="")
{
model.CreateTime=DateTime.Parse(ds.Tables[0].Rows[0]["CreateTime"].ToString());
}
return model;
}
else
{
return null;
}
}
/// <summary>
/// 获得数据列表
/// </summary>
public DataSet GetList(string strWhere)
{
StringBuilder strSql=new StringBuilder();
strSql.Append("select id,Departmentname,TaxationAddressID,Parent,Telephone,Fax,Address,Emaile,Flag,Status,UpdateTime,CreateTime ");
strSql.Append(" FROM Department ");
if(strWhere.Trim()!="")
{
strSql.Append(" where "+strWhere);
}
return DbHelperSQL.Query(strSql.ToString());
}
/// <summary>
/// 获得前几行数据
/// </summary>
public DataSet GetList(int Top,string strWhere,string filedOrder)
{
StringBuilder strSql=new StringBuilder();
strSql.Append("select ");
if(Top>0)
{
strSql.Append(" top "+Top.ToString());
}
strSql.Append(" id,Departmentname,TaxationAddressID,Parent,Telephone,Fax,Address,Emaile,Flag,Status,UpdateTime,CreateTime ");
strSql.Append(" FROM Department ");
if(strWhere.Trim()!="")
{
strSql.Append(" where "+strWhere);
}
strSql.Append(" order by " + filedOrder);
return DbHelperSQL.Query(strSql.ToString());
}
/*
/// <summary>
/// 分页获取数据列表
/// </summary>
public DataSet GetList(int PageSize,int PageIndex,string strWhere)
{
SqlParameter[] parameters = {
new SqlParameter("@tblName", SqlDbType.VarChar, 255),
new SqlParameter("@fldName", SqlDbType.VarChar, 255),
new SqlParameter("@PageSize", SqlDbType.Int),
new SqlParameter("@PageIndex", SqlDbType.Int),
new SqlParameter("@IsReCount", SqlDbType.Bit),
new SqlParameter("@OrderType", SqlDbType.Bit),
new SqlParameter("@strWhere", SqlDbType.VarChar,1000),
};
parameters[0].Value = "Department";
parameters[1].Value = "ID";
parameters[2].Value = PageSize;
parameters[3].Value = PageIndex;
parameters[4].Value = 0;
parameters[5].Value = 0;
parameters[6].Value = strWhere;
return DbHelperSQL.RunProcedure("UP_GetRecordByPage",parameters,"ds");
}*/
#endregion 成员方法
}
}
三层模式开发使用GridPanel(.net)控件代码实例详解 打包下载 gridpanel使用window的示例
不包含数据库文件 需要数据库文件请点击此处