日期:2014-05-16 浏览次数:20480 次
转自:http://blog.csdn.net/jianxin160/archive/2010/11/16/6013217.aspx
?
?
今天我们一块看一下GridPanel和FormPanel的另外一些知识。在这一篇文章中我觉得更多的是FromPanel的应用,虽然前面我们单独说了FromPanel布局及其相关控件,但是关于FromPanel的提交和加载一直没有说。在这一篇文章中我们着重说一下FromPanel的加载与提交,以及如何将FormPanel与TabPanel结合起来等。例子要实现的功能:显示商品信息并且支持分页和搜索;单击某商品弹出相关信息(包括供货商和种类信息);在弹出窗口中可以自动加载相关信息并且可以修改提交。
由于这一篇文章是结合了几种控件来阐述的,GridPanel部分是在上一篇"ExtJs之GridPanel篇"之上进行修改的,除了添加其双击事件等代码外其他的几乎完全一样。但是作为一个完整的例子我觉得还是把代码放出了,不明白的朋友可以参考上一篇关于GridPanel的文章。下面是例子中GridPanel功能的后台代码,前台代码我们放在下面和FromPanel一块说:
?
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Web.Script.Serialization;
using System.Collections.Generic;
using System.Text;
using Cmj.MyData;
namespace GridPanel
{
public partial class _Default : System.Web.UI.Page
{
DBHelper dbHelper = new DBHelper();
int count;
protected void Page_Load(object sender, EventArgs e)
{
int pageSize=10;
int start=0;
Session["categoryID"] = "";
Session["productName"] = "";
if (!string.IsNullOrEmpty(Request["limit"]))
{
pageSize = int.Parse(Request["limit"]);
}
if (!string.IsNullOrEmpty(Request["start"]))
{
start = int.Parse(Request["start"]);
}
if (start==0 && Request["categoryName"] != null && Request["productName"]!=null)//说明是查询而不是翻页
{
Session["categoryID"] = Request["categoryName"];
Session["productName"] = Request["productName"];
}
count = GetCount(Session["categoryID"].ToString(), Session["productName"].ToString());
Response.Write(GetJson(GetDataTabel(GetSql(Session["categoryID"].ToString(), Session["productName"].ToString()), pageSize, start), Session["categoryID"].ToString(), Session["productName"].ToString()));
Response.End();
}
private string GetSql(string categoryID,string productName)
{
string sql = "SELECT dbo.Products.ProductID, dbo.Products.ProductName,dbo.Categories.CategoryName,dbo.Products.UnitPrice,dbo.Products.Discontinued,dbo.Products.QuantityPerUnit,dbo.Suppliers.CompanyName FROM dbo.Products INNER JOIN dbo.Categories ON dbo.Products.CategoryID = dbo.Categories.CategoryID" +
" INNER JOIN dbo.Suppliers ON dbo.Suppliers.SupplierID=dbo.Products.SupplierID ";
if (categoryID != "all")
{
sql += "WHERE dbo.Categories.CategoryID='" + categoryID + "'";
}
if(productName!=string.Empty)
{
sql+= " AND dbo.Products.ProductName like '%" + productName + "%'";
}
return sql;
}
private int GetCount(string categoryID,string productName)
{
string