Extjs Html代码传值问题(aspx做为服务文件)

HTML代码:

<! 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 >
    
< title > 游戏分类 </ title >
    
< link  rel ="stylesheet"  rev ="stylesheet"  href ="/stylesheets/ext-all.css"  type ="text/css"
        media
="all"   />
    
< link  href ="/stylesheets/mainstyle.css"  rel ="stylesheet"  type ="text/css"   />

    
< script  type ="text/javascript"  src ="/javascripts/ext-base.js"  charset ="utf-8" ></ script >

    
< script  type ="text/javascript"  src ="/javascripts/ext-all.js"  charset ="utf-8" ></ script >

    
< script  type ="text/javascript"  src ="/javascripts/xmltrans.js"  charset ="utf-8" ></ script >

    
< script  type ="text/javascript"  src ="/javascripts/xmleditor.js"  charset ="utf-8" ></ script >

    
< script  type ="text/javascript"  src ="/javascripts/htmleditor.js"  charset ="utf-8" ></ script >

    
< script  type ="text/javascript"  src ="/javascripts/ext-lang-zh_cn.js"  charset ="utf-8" ></ script >
    
     
< script  type ="text/javascript"  src ="/javascripts/Ext.ux.UploadDialog.packed.js" ></ script >       
    

    
< script  src ="/javascripts/ext-webservices.js"  type ="text/javascript" ></ script >
    
<!--  ExtJS调用WCF的专用文件  -->

    
< script  type ="text/javascript"  src ="/javascripts/WCFHttpProxy.js" ></ script >

    
< script  type ="text/javascript"  src ="/javascripts/WCFJsonReader.js" ></ script >

    
< script  type ="text/javascript"  src ="/javascripts/WCFHelper.js" ></ script >

    
< script  type ="text/javascript"  src ="/javascripts/SearchField.js" ></ script >

</ head >
< body >
    
< div  id ="newCharge01"  class ="x-panel-bwrap" >
        
< div  id ="group" >
        
</ div >
    
</ div >

    
< script  type ="text/javascript" >
    
<!--
    
//表单,点击添加或修改时弹出的窗口中的表单对象
    var EmpForm;
    
//添加数据窗口,其中包含了一个空值的EmpForm
    var AddEmpWin;
    
//修改数据窗口,其中包含了一个已赋值的EmpForm
    var EditEmpWin;
    
//数据源,要显示的列表数据源
    var ds ;
    
//显示控件,显示列表的GridPanel控件
    var grid;
    
//游戏列表
    var dsType;
    
//编辑器
    var htmleditor;
    
     
    
//函数部分        
    function GetWebServiceData()
    
{  
        setDsType();
        
//选择按钮
        var sm = new Ext.grid.CheckboxSelectionModel();       
        
//列信息
        var cm = new Ext.grid.ColumnModel([        
        
new Ext.grid.RowNumberer({header:'序号',width:35}),//计算行数,无法映射         
        sm,
        
{header:'游戏名称',dataIndex:'Gname',sortable:true,width:50},         
        
{header:'扩展标题',dataIndex:'Etitle',sortable:true,width:100},
        
{header:'扩展内容',dataIndex:'Edesc',sortable:true,width:100},
        
{header:'排序',dataIndex:'Orderid',sortable:true,width:50}
        ]);
                       
        
//#数据源映射,可修改部分
        ds = new Ext.data.Store({
        proxy: 
new Ext.data.WCFHttpProxy({
            url:
'/Admin/Wcf/Gameinfosextend.svc/Gameinfosextends'
        }
),
        reader: 
new Ext.data.WCFJsonReader({
                    root: 
'source',//源映射
                    totalProperty: 'totalCount',//总页数
                    id:'Tid'//id值
                    }

                    [
                        
//与返回的数据源读取映射,与数据库的表一致                        
                        {name: 'Gname'},//如果名称一致,可以省略mapping             
                        {name:'Etitle'},
                        
{name:'Edesc'},
                        
{name:'Orderid'},
                        
{name:'Gameid'}
                    ]
                ),
        remoteSort: 
false
      }
);      
      
        
//配置视图信息
        var view=new Ext.grid.GridView({forceFit:true,sortAscText :'正序', sortDescText :'倒序'});
        view.columnsText
='列显示/隐藏';
       
        
//分页        
        var paging = new Ext.PagingToolbar({
                pageSize: 
10,//每页显示数                                                             
                store: ds,
                displayInfo: 
true,
                displayMsg: 
'显示第 {0} 条到 {1} 条记录,一共 {2} 条',
                emptyMsg: 
"没有记录"
            }
);
            
       
//头部的操作按钮    
       var operation = [
       
{
            text:
'添加',
            tooltip:
'添加一条记录',
            
//iconCls:'add',
            handler:handleAdd
        }
'-',
        
{
            text:
'修改',
            tooltip:
'修改',
            
//iconCls:'option',
            handler:handleEdit
        }
,'-',
        
{
            text:
'删除',
            tooltip:
'删除记录',
            
//iconCls:'remove',
            handler:handleDelete
        }
,'-',' ','搜索(按游戏名称): '' ',new Ext.app.SearchField({store:ds,pagebar:paging,width:200,paramName:'search'})
        ];
        
        
       
//显示控件
       grid = new Ext.grid.EditorGridPanel({
            el:Ext.getBody(),
//显示的位置对象
            store: ds,//数据源
            sm:sm,//多选按钮组
            cm:cm,//列映射
            view:view,//视图映射
            bbar:paging,//分页
            tbar:operation,//头部操作            
            width:770,
            height:
450           
        }
);
       grid.render();       
       ds.load(
{params:{start:0,limit:paging.pageSize,search:''}}); 
    }

    
    
function setDsType()
    
{
        dsType 
= new Ext.data.Store(
        
{
            proxy: 
new Ext.data.WCFHttpProxy({url:'/Admin/Wcf/Gameinfos.svc/WCFGridsJson'}),
            reader: 
new Ext.data.WCFJsonReader(
            
{
                root: 
'source',
                id:
'Id'
            }

            [
                
{name: 'Id'},
                
{name: 'Gname'}
            ])
        }
);        
        dsType.load(
{params:{GsystemId:0,start:0,limit:10000,key:''}});         
    }

    
    
    
//操作部分
    //添加游戏信息 Start
    function handleAdd(){
     createForm();     
     AddEmpWin 
= new Ext.Window({
                title: 
'增加游戏分类',
                layout:
'fit',
                width:
770,
                height:
400,
                plain: 
true,
                items:EmpForm,
                buttons: [
{
                        text:
'保存',
                        handler: AddRecord
                }
,{
                    text: 
'取消',
                    handler: 
function(){
                        AddEmpWin.hide();
                    }

                }
]
     }
);
     AddEmpWin.show(
this);
    }

        
    
    
//保存添加的数据
    function AddRecord(btn)
    
{        
        
if (EmpForm.form.isValid()) 
        
{            
                 btn.disabled
=true;                  
                 
var formvalue = EmpForm.form.getValues();
                 
var pars =Ext.util.JSON.encode(formvalue);
                 
//Ext.MessageBox.alert("提示",formvalues); 
                Ext.Ajax.request({
                        url: 
'index.aspx?opr=add'//#可修改成你的方法
                        method: 'POST'
                        headers:
{"Content-Type":"application/x-www-form-urlencoded;"},
                        params:pars,
//the unique id(s)
                        callback: function (options, success, response) {
                            
var res = Ext.util.JSON.decode(response.responseText);     
                            
if (res.suc) //success will be true if the request succeeded                                  
                                  var alertcontent=ConvertResponseText(response.responseText,"",true,false);
                                  AddEmpWin.hide();
                                  Ext.MessageBox.alert(
"成功",res.mes);                                  
                            }
 else {
                                    AddEmpWin.hide();                                 
                                    Ext.MessageBox.alert(
"失败",res.mes);
                            }

                        }
,
                        
//the function to be called upon failure of the request (server script, 404, or 403 errors)
                        failure:function(response,options){      
                            AddEmpWin.hide();                      
                            Ext.MessageBox.alert(
"警告","出现异常错误!请联系管理员!");
                        }
,  
                        success:
function(response,options){                            
                            ds.reload();         
                        }
                                    
              }
)// end Ajax request 
                
        }

    }

    
    
//添加游戏信息 End
    
    
//修改游戏信息 Start
    function handleEdit(){        
        createForm();      
        
var selectedKeys = grid.selModel.selections.keys; //returns array of selected rows ids only,读选择了的数据数组
            
            
if(selectedKeys.length != 1)
            
{
                Ext.MessageBox.alert(
'提示','请选择一条记录!');
            }
    
            
else 
            
{            
                EditEmpWin 
= new Ext.Window({
                    title: 
'修改游戏资料',
                    layout:
'fit',
                    width:
770,
                    height:
400,
                    plain: 
true,
                    items:EmpForm,
                    buttons: [
{
                        text:
'保存',
                        handler: UpdateRecord
                    }
,{
                        text: 
'取消',
                        handler: 
function(){
                            EditEmpWin.hide();
                        }

                    }
]
                }
);
        
        EditEmpWin.show(
this);        
        
        
var request = {empid:selectedKeys[0]};
        Ext.Ajax.request(
{
                    url: 
'/Admin/Wcf/Gameinfosextend.svc/GetGameinfosextend'//#可修改成你的方法,带ID参数
                    method: 'POST'
                    params:Ext.util.JSON.encode(request),
//the unique id(s)
                    callback: function (options, success, response) {                          
                        
if (success) //success will be true if the request succeeded                                                  
                              var formvalue =Ext.WS.getJson(response);                                                                                  
                              formvalue 
= formvalue.source;//这里返回的对象为与root映射的对象一致, 例如:如果列中映射为gname,则formvalue.gname就是它的值                                                            
                              EmpForm.form.setValues(formvalue);
                        }
 else {                             
                            
//Ext.MessageBox.alert("失败","已有此游戏的指南");
                        }

                    }
,
                    
//the function to be called upon failure of the request (server script, 404, or 403 errors)
                    failure:function(response,options){                       
                        Ext.MessageBox.alert(
"警告","出现异常错误!请联系管理员!");
                    }
,  
                    success:
function(response,options){
                        
                    }
                                    
          }
)// end Ajax request 
        }

    }

    
    
function UpdateRecord(btn)
    
{
        
if (EmpForm.form.isValid()) {
                btn.disabled
=true;          
                 
var formvalue = EmpForm.form.getValues();  
                 
var pars =Ext.util.JSON.encode(formvalue);              
                 
//var request = {emp:Ext.util.JSON.encode(ConvertFormValue(formvalue,''))};//如果有参数的类型为时间,则添入第二个参数中,多个用","号隔开
                 //Ext.MessageBox.alert("提示",formvalues);                 
                 //request = Ext.util.JSON.encode(request);
                Ext.Ajax.request({
                        
//url: '/Admin/Wcf/Gameinfosextend.svc/UpdateGameinfosextend', //#可修改成你的方法
                        url:"index.aspx?opr=update",
                        method: 
'POST'
                        
//params:pars,//the unique id(s)         
                        headers:{"Content-Type":"application/x-www-form-urlencoded;"},
                        params:pars,
                        callback: 
function (options, success, response) {
                            
var res = Ext.util.JSON.decode(response.responseText);                            
                            
if (res.suc) //success will be true if the request succeeded                                  
                                  var alertcontent=ConvertResponseText(response.responseText,"",true,false);
                                  Ext.MessageBox.alert(
"成功",res.mes);
                                  EditEmpWin.hide();
                            }
 else {    
                                 EditEmpWin.hide();                            
                                 Ext.MessageBox.alert(
"失败",res.mes);
                            }

                        }
,
                        
//the function to be called upon failure of the request (server script, 404, or 403 errors)
                        failure:function(response,options){     
                            EditEmpWin.hide();                       
                            Ext.MessageBox.alert(
"警告","出现异常错误!请联系管理员!");
                        }
,  
                        success:
function(response,options){                           
                            ds.reload();
                        }
                                    
              }
)// end Ajax request 
         }

    }
  
    
//修改游戏信息 End
    
    
    
//删除游戏信息 Start
    function handleDelete(){
      
var selectedKeys = grid.selModel.selections.keys; //returns array of selected rows ids only
            if(selectedKeys.length > 0)
            
{
                Ext.MessageBox.confirm(
'提示','您确实要删除选定的记录吗?', deleteRecord);
            }

            
else
            
{
                Ext.MessageBox.alert(
'提示','请至少选择一条记录!');
            }
//end
    }
 
    
    
function deleteRecord(btn){
         
if(btn=='yes'){
              
var selectedRows = grid.selModel.selections.items;//returns record objects for selected rows (all info for row)
                var selectedKeys = grid.selModel.selections.keys;              
                Ext.Ajax.request(
{
                        url: 
'/Admin/Wcf/Gameinfosextend.svc/DelGameinfosextend'//#可修改成你的方法
                        method: 'POST'
                        params:Ext.util.JSON.encode(selectedKeys),
//the unique id(s)
                        callback: function (options, success, response) {
                            
if (success) //success will be true if the request succeeded                                 
                                   var alertcontent=ConvertResponseText(response.responseText,"",false,false);
                                  Ext.MessageBox.alert(
"成功",alertcontent);
                            }
 else {                               
                                 
//Ext.MessageBox.alert("失败,请重试",response.responseText);
                            }

                        }
,
                        
//the function to be called upon failure of the request (server script, 404, or 403 errors)
                        failure:function(response,options){                            
                            ReturnValue 
= Ext.MessageBox.alert("警告","出现异常错误!请联系管理员!");
                        }
,  
                        success:
function(response,options){                           
                            ds.reload();
                        }
                 
              }
)// end Ajax request 
         }
//end if click 'yes' on button
    }
 // end deleteRecord
    //删除游戏信息 End   
    
    
//#表单映射,可修改部分    
    function createForm()
    
{  
        Ext.QuickTips.init();      
        
        htmleditor
=new Ext.form.HtmlEditor(  
                                
{
                                    fieldLabel: 
'内容',
                                    name: 
'Edesc',                                    
                                    allowBlank:
false,                                    
                                    width:
550,
                                    height:
200                                    
                                }
);      
        
//创建单个游戏信息表单
        EmpForm = new Ext.FormPanel({
            frame: 
true,
            labelAlign: 
'right',
            labelWidth: 
120,
            width:
770,
            height:
400,
            
//头信息
            items: [                    
                    
new Ext.form.FieldSet({
                        title: 
'游戏资料分类信息表',
                        autoHeight: 
true,                        
                        defaultType: 
'textfield',
                        items: [
                                    
//隐藏字段
                                    new Ext.form.Hidden({
                                    name: 
'Tid',
                                    value:
0
                                    }
),                                    
                                    
new Ext.form.ComboBox(
                                    
{
                                        width:
200,
                                        fieldLabel: 
'游戏名称',                                        
                                        hiddenName:
'Gameid',
                                        store:dsType,
                                        valueField:
'Id',
                                        displayField:
'Gname',
                                        mode: 
'local',
                                        triggerAction: 
'all',
                                        allowBlank:
false
                                    }
),   
                                    
{
                                        fieldLabel:
"标题",
                                        name:
'Etitle',
                                        allowBlank:
false
                                    }
,                                                                 
                                    
//输入框
                                    htmleditor,
                                    
{
                                        fieldLabel:
"排序",
                                        name:
'Orderid',
                                        allowBlank:
false,
                                        value:
0
                                    }
  
                                ]
                            }
)                           
                    ]                
            }
);          
    }
       
    
    
    
    
    GetWebServiceData();
    
//-->
    
</ script >
</ body >
</ html >

 再来看看index.aspx页面的后台代码:

using  System;
using  System.Collections.Generic;
using  System.Linq;
using  System.Text;
using  System.IO;  // 注意,导入
using  CommonHelper;
using  YouXi.DB;

namespace  YouXi.Components
{
    
public class gameinfosextend : System.Web.UI.Page
    
{
        
protected void Page_Load(object sender, EventArgs e)
        
{
            
            YouXi.Components.Gameinfos bll 
= new YouXi.Components.Gameinfos();
            YouXiNavigateDataContext db 
= new YouXiNavigateDataContext();
            
//这里开始是关键的代码,将传过来的数据流读取到流对象,注意一下编码,在这个例子里是UTF8的
            System.IO.StreamReader red = new StreamReader(Request.InputStream, System.Text.Encoding.UTF8/*有可能是gb2312*/);
            
//将流中的数据读出来,赋值给字符串
            string strContent = red.ReadToEnd();
            
string opr = string.Empty;
            
bool canUpdate = false;
            DB.Gameinfosextend game 
= strContent.DeJSON<DB.Gameinfosextend>();

            
if (Request.QueryString["opr"!= null)
            
{
                opr 
= Request.QueryString["opr"].ToString();
            }

            
string message = string.Empty;
            
bool success = false;
            
switch (opr)
            
{
                
case "update":
                    DB.Gameinfosextend h 
= db.Gameinfosextend.Where(n => n.Gameid == game.Gameid && n.Etitle == game.Etitle).SingleOrDefault();
                    
if (h == null)//修改后的游戏在已有的数据中没有
                    {
                        canUpdate 
= true;
                    }

                    
else if (h.Gameid == game.Gameid && h.Etitle !=game.Etitle || h.Tid == game.Tid )//修改后的游戏在已有的数据中有,且是同一条数据
                    {
                        canUpdate 
= true;
                    }


                    
if (canUpdate)
                    
{
                        var m 
= db.Gameinfosextend.Single(n => n.Tid == game.Tid);
                        
int ogid = m.Gameid;
                        m.Etitle 
= game.Etitle;
                        m.Edesc 
= game.Edesc.targetLink();
                        m.Gameid 
= game.Gameid;
                        m.Orderid 
= game.Orderid;
                        
if (m.Edesc.Trim().Length >= 5)
                        
{
                            db.SubmitChanges();
                            
if (ogid != m.Gameid)
                            
{
                                message 
= bll.MadeGameHTML(ogid);
                            }

                            message 
= message + bll.MadeGameHTML(m.Gameid);
                            success 
= true;
                        }

                        
else
                        
{
                            message 
= "内容至少五个字符!";
                        }

                    }

                    
else
                    
{
                        message 
= "已有此游戏的扩展标题!";
                    }


                    
break;
                
case "add":
                    db.Gameinfosextend.InsertOnSubmit(game);
                    
if (db.Gameinfosextend.Where(n => n.Gameid == game.Gameid && n.Etitle == game.Etitle).SingleOrDefault() == null)
                    
{
                        
if (game.Edesc.Trim().Length >= 5)
                        
{
                            game.Createtime 
= DateTime.Now;
                            db.SubmitChanges();
                            message 
= bll.MadeGameHTML(game.Gameid);
                            success 
= true;
                        }

                        
else
                        
{
                            success 
= false;
                            message 
= "内容至少五个字符!";
                        }

                    }

                    
else
                    
{
                        success 
= false;
                        message 
= "已有此游戏的扩展标题!";
                    }

                    
break;
                
default:
                    message 
= "未添加任何数据!";
                    
break;
            }


            var json 
= new { suc = success, mes = message.ToLower().Replace("<a""<a style='color:Red;text-decoration:underline;'") };
            Response.Write(json.ToJSON());
            Response.Flush();
        }

    }

}

猜你喜欢

转载自blog.csdn.net/baozhenliang/article/details/2197163