ExtJs2.0学习系列(10)--Ext-EditorGridPanel与后台类及数据库的交互

来源:互联网 发布:马克思主义学院 知乎 编辑:程序博客网 时间:2024/06/09 18:34

     下面的案例是在net环境下实现的extjs与数据库的交互,这里只是用extjs调用了一个后台的方法,因为如果再涉及到数据库的话,那代码量会很大,然后逻辑也就会有些复杂,我这样用extjs实现对后台类的方法的调用,因为我们操作数据库的代码肯定是在后台类中写的,相信你也能够用此联想到下一步该怎么用extjs来操作数据库了。

     这里我们用到了2个页面,Default.aspx页面和Response.aspx页面。

 

     首页先简历一个default.aspx,下面是前台页面代码,不需要在后台页面类中写任何代码:

 

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>ExtJs2.0学习系列(10)--Ext-EditorGridPanel与后台类及数据库的交互</title>
<link type="text/css" href="Ext/resources/css/ext-all.css" rel="stylesheet" />
<script type="text/javascript" src="Ext/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="Ext/ext-all.js"></script>
<script type="text/javascript">
  Ext.onReady(function(){
 
    var jsonData=[ {id:1,name: '唐骏', age:50,sex:'男'},

             {id:2,name: '巴菲特', age: 60,sex:'男'},

             {id:3,name: '比尔盖茨', age: 55,sex:'男'},

             {id:4, name:'于海涛', age: 22,sex:'男'}
   
    ];
 
 var _store=new Ext.data.JsonStore({data:jsonData,fields:["id","name","age","sex"]});//data表示store初始化后,要加载的内联数据
  
 var colm=new Ext.grid.ColumnModel([
   {header:"ID",dataIndex:"id",sortable:true,width:124},
   {header:"姓名",dataIndex:"name",sortable:true,width:124,editor:new Ext.form.TextField({allowBlank:false})},
   {header:"年龄",dataIndex:"age",sortable:true,width:124},
   {header:"性别",dataIndex:"sex",sortable:true,width:124} 
 ]); 
 
 var gridpanel=new Ext.grid.EditorGridPanel({
          renderTo:"JsonReader",
    title:"JsonReader",
    width:500,
    height:300,
    cm:colm,
    store:_store,
    listeners:{
             "afteredit":function(e){
              var r=e.record;
              var c=e.field;
              var value=e.value;
              Ext.Ajax.request({
                     url:"Response.aspx",
                     method:"POST",
                     params:{
                        typename:c,//获取列名
                        values:value//获取选中的value值
                     },
                     success:function(response,opiton){
                       alert(response.responseText);
                     },
                     failure:function(){
                        alert(response.responseText);
                     }
              })
        }
    }
 });
  });
</script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <div id="JsonReader"></div>
    </div>
    </form>
</body>
</html>

下面是Response.aspx的,该页面不需要在前台页面写任何代码,因为该页面的作用是对接收上一个页面传过来的参数,并操作数据库,所以我们只需要在该页面的 Page_Load方法内添加几行代码即可,然后还需要定义一个操作数据库的类。代码如下:

 

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class Response : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            string typename=Request.Form["typename"];
            string values=Request.Form["values"];
            result(typename, values);
        }
    }
    protected void result(string typename, string values)
    {
        Response.Clear();
        if (typename == "name" && values == "yht")
        {
            Response.Write("修改成功!");
        }
        else
        {
            Response.Write("修改失败!");
        }
      
        Response.ContentType = "application/json";
        Response.End();

    }
}

实现效果如下:

 

原创粉丝点击