var store;
Ext.app.ContentItemJKGrid = Ext.extend(Ext.grid.GridPanel,
{
title: '内容项接口列表',
region: 'north',
id: 'am-contentitemjkgrid',
height: 150,
ctiId: 0,
ctiName: '',
wsId: 0,
viewConfig:
{
id: 'ctigv',
trackOver: true,
stripeRows: true
},
initComponent: function () {
var me = this;
var ctism = new Ext.selection.CheckboxModel({
id: "ctiJKwsId",
dataIndex: 'CtiId',
mode: 'SINGLE', //设置Checkbom只能选中一个
listeners: {
'select': function (sm, rowIndex, record) {
ctijkClick();
}
}
});
this.columns =
[
{
id: 'ctiJKgridName',
header: '内容项名称',
width: 300,
sortable: true,
dataIndex: 'CtItemName'
},
{
id: 'ctiJKgridwsName',
width: 400,
header: 'Web Sevice名称',
dataIndex: 'WsName'
},
{
id: 'ctiJKgridExplain',
width: 400,
header: '数据库表名',
dataIndex: 'TableName'
}
];
this.selModel = ctism;
Ext.define('Ext.app.ContentItemData',
{
extend: 'Ext.data.Model',
fields:
[
//第一个字段需要指定mapping,其他字段,可以省略掉。
{
name: 'CtItemName',
mapping: 'CtItemName',
type: 'string'
},
{
name: 'WsName',
type: 'string'
},
{
name: 'TableName',
type: 'string'
},
{
name: 'CtiId',
type: 'int'
},
{
name: 'Id',
type: 'int'
},
{
name: 'WsId',
type: 'string'
}
]
});
store = Ext.create('Ext.data.Store',
{
model: 'Ext.app.ContentItemData',
pageSize: 20,
proxy:
{
type: 'ajax',
url: 'Data/CtItemInterface/CtItemInterfaceInfo.aspx?param=select',
reader:
{
type: 'json',
root: 'items',
totalProperty: 'total'
}
},
listeners: {
load: function () {
var addClick = Ext.getCmp("ctiJKAdd");
var EditClick = Ext.getCmp("ctiJKEdit");
var deleteClick = Ext.getCmp("ctiJKdelete");
if (addClick) {
if (me.ctiId == 0) addClick.disabled = true;
else addClick.disabled = false;
}
if (EditClick) {
if (me.ctiId == 0) EditClick.disabled = true;
else EditClick.disabled = false;
}
if (deleteClick) {
if (me.ctiId == 0) deleteClick.disabled = true;
else deleteClick.disabled = false;
}
if (me.store.data.length > 0) {
me.getSelectionModel().select(0); // checkbom默认选择一个
}
ctijkClick();
}
},
autoLoad: true
});
Ext.apply(this,
{
store: store,
dockedItems:
[{
dock: 'top',
xtype: 'toolbar',
items:
[
{
width: 80,
xtype: 'button',
id: "ctiJKAdd",
text: '添加',
store: store,
handler: ctijkAdd
},
{
width: 50,
xtype: 'button',
id: "ctiJKEdit",
text: '编辑',
store: store,
handler: ctijkEdit
},
{
width: 50,
xtype: 'button',
id: "ctiJKdelete",
text: '删除',
store: store,
handler: ctijkDelete
}
]
}]
});
///定义内容项接口删除事件
function ctijkDelete() {
var row = me.getSelectionModel().getSelection();
if (row.length == 0) {
Ext.Msg.alert("提示", "请选择一行");
} else {
Ext.Msg.confirm("提示", "确定删除这" + row.length + "条信息吗?",
function (btn) {
if (btn == "yes") {
Ext.Ajax.request({
url: "data/CtItemInterface/CtItemInterfaceManager.aspx?param=DeleteCtItemJk",
method: "POST",
params: { id: row[0].get("Id") }, //发送的参数
success: function (response, option) {
response = Ext.JSON.decode(response.responseText);
if (response.success == true) {
if (response.flag == true) {
Ext.MessageBox.alert("提示", "删除接口成功!");
//刷新列表
me.store.load();
}
else { Ext.MessageBox.alert("错误信息", "删除接口失败!"); }
}
else { Ext.MessageBox.alert("错误信息", response.msg); }
},
failure: function () { Ext.Msg.alert("提示", "删除失败<br>没有捕获到异常"); }
});
}
})
}
}
///复选框选择事件
function ctijkClick() {
//根据选中的行显示相应内容栏数据
var ctcgridview = Ext.getCmp('am-contentcolumngrid');
if (me.store.data.length > 0) {
ctcgridview.wsName = me.getSelectionModel().getSelection()[0].get("WsName"); //可以给另一个grid属性赋值
ctcgridview.wsId = me.getSelectionModel().getSelection()[0].get("WsId");
ctcgridview.ctiName = me.getSelectionModel().getSelection()[0].get("CtItemName");
} else { ctcgridview.wsId = 0 }
// alert(ctcgridview.wsId);
ctcgridview.ctiId = me.ctiId;
ctcgridview.store.load({
url: 'Data/ContentColumn/ContentColumnInfo.aspx?param=select',
params: { msg: me.ctiId }
});
}
//定义内容项接口添加事件
function ctijkAdd() {
var ctiWin = Ext.create('Ext.app.ContentItemJKAddForm', { ctiId: me.ctiId, ctiName: me.ctiName });
ctiWin.show();
}
//定义内容项接口编辑事件
function ctijkEdit() {
var row = me.getSelectionModel().getSelection();
if (row.length == 0) {
Ext.Msg.alert("提示", "请选择一行");
} else if (row.length > 1) {
Ext.Msg.alert("提示", "只能选择一行");
} else if (row.length == 1) {
var ctiInId = row[0].get('Id');
if (ctiInId != 0) {
var editwin = Ext.create('Ext.app.ContentItemJKEditForm', { Id: ctiInId });
editwin.show();
Ext.getCmp("am-contentitemjkeditform").getForm().load(
{
url: "data/CtItemInterface/CtItemInterfaceInfo.aspx?param=selectById",
params: { Id: ctiInId },
waitTitle: "请等待",
waitMsg: "正在加载数据...",
success: function (form, action) {
},
failure: function (form, action) {
Ext.Msg.alert("提示", "数据加载失败!");
}
});
}
}
};
Ext.app.ContentItemJKGrid.superclass.initComponent.call(this);
}
});
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using CtManager.BLL;
using CtManager.Model;
using Newtonsoft.Json;
public partial class Data_CtInterface_CtInterfaceInfo : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (Request["param"] == null)
{
Response.Write("");
return;
}
string parameter = Request["param"];
if (parameter == "select") Response.Write(doCtItemInterface());
else Response.Write("");
}
/// 根据内容项Id内容项接口集合
private string doCtItemInterface()
{
try
{
IList<CtItemInterface> ctItemInterface = CtItemInterfaceManager.GetAllCtItemInterfaces(Request["ctItemId"]);
if (ctItemInterface == null) return "{total:0,items:[]}";
string json = JavaScriptConvert.SerializeObject(ctItemInterface);
return "{total:3,items:" + JavaScriptConvert.SerializeObject(ctItemInterface) + "}";
}
catch (Exception)
{
return "{total:0,items:[]}";
}
}
}
分享到:
相关推荐
在本文中,我们将深入探讨如何创建并使用一个完整的ExtJS GridPanel实例,以及与其相关的源码和工具。 首先,让我们理解GridPanel的基本结构。GridPanel通常由以下几个主要部分组成: 1. **Store**: 存储数据的...
本文通过实例代码的形式,详细介绍了在ExtJs的GridPanel组件中实现分组后组名排序的具体步骤。通过自定义GroupingStore和GroupingView的配置,我们可以实现复杂的数据显示和交互功能,使得最终用户在使用GridPanel时...
1. **store**: 这个属性定义了GridPanel所绑定的数据源,通常是一个Ext.data.Store实例,用于存储和管理数据。 2. **columns/colModel**: 定义了表格的列结构,每个列都是一系列配置项,包括列头文本、数据索引等。...
首先,通过`Ext.getCmp("grid_jglb")`获取`GridPanel`的实例,然后利用`getElementById`获取DOM元素。接着,通过`getElementsByTagName("table")`找到所有的表格,再遍历这些表格的每一个单元格,设置它们的CSS样式...
4. 实例化GridPanel:配置GridPanel的各种属性,如高度、宽度、是否可拖动列等,然后将Store和ColumnModel传递给GridPanel。 5. 渲染GridPanel:将GridPanel添加到容器中,完成渲染。 在实际应用中,GridPanel还...
本实例"asp.net下extjs完整实例"将展示如何将这两者完美结合,创建出功能完备、交互性强的Web应用。EXTJS在ASP.NET中的应用,主要体现在客户端的交互和UI展示,而ASP.NET则负责后端的数据处理和逻辑控制。 首先,...
`Ext.create('Ext.grid.Panel')`是创建GridPanel实例的命令。在这个例子中,我们设置了GridPanel的标题、宽度、高度和渲染位置。`store`属性配置了数据源,这里使用了内存代理`proxy: { type: 'memory' }`,并将数据...
GridPanel的xtype为grid,这意味着开发者可以在使用Ext JS的类管理器时,通过简短的'grid'来创建一个新的GridPanel实例。 在ExtJS中使用GridPanel首先需要定义列信息和数据存储器Store。列信息由类Ext.grid....
### ExtJS GridPanel 使用详解及示例 #### 一、引言 在现代Web应用程序开发中,特别是基于ExtJS框架的应用程序中,`GridPanel`是处理表格数据展示的一个非常重要的组件。它不仅可以帮助开发者轻松地展示数据,还...
这个实例"EXTJSEXT实例GridPanel"旨在教授如何在EXTJS中创建并使用GridPanel。 GridPanel是EXTJS中的一个核心组件,它允许开发者以网格形式展示数据,支持多种功能,如排序、分页、筛选、编辑等。在EXTJS中,...
// 假设你已经有了一个名为grid的GridPanel实例,其store为store实例 var csvData = ''; store.each(function(record) { var fields = record.data; for (var field in fields) { csvData += fields[field] + ','...
4. **设置JavaScript逻辑**:`GridPanel.jwc`文件可能包含了组件的JavaScript配置,用于初始化和配置ExtJS的GridPanel实例。这里通常会涉及数据源的配置、列定义、事件监听器等。 5. **资源文件**:`GridPanel....
4. **本地及远程分页**:ExtJS 支持两种分页模式:本地分页和远程分页。本地分页适用于数据量较小的情况,而远程分页则通过向服务器发送请求来获取数据,适合大数据集的场景。 5. **单元格自定义渲染**:开发者可以...
4. 对于复杂的配置,可以将它们分离到单独的配置对象,需要时再合并到GridPanel实例。 总之,解决Ext的gridpanel控件二次加载时丢失的问题需要对Ext JS的生命周期管理有深入的理解,并结合实际应用场景选择合适的...
ExtJS4中的gridpanel组件提供了一些内置的方法来控制列的可见性,但有时候需要一个更直观的方式来实现这一功能,例如通过一个checkboxgroup来让用户直接勾选哪些列应该显示,哪些列应该隐藏。 为了实现这一功能,...
2. 创建一个新的ExtJS GridPanel实例,设置其配置项,如数据源、列定义、锁定策略等。 3. 在列配置中,指定需要锁定的列,这通常通过设置`locked: true`属性来实现。 4. 初始化GridPanel并将其添加到页面上。 5. ...
例如,在ExtJS中,我们可以创建一个新的`Ext.toolbar.Toolbar`实例,并将其附加到`gridPanel`的顶部或底部。 ```javascript var toolbar = Ext.create('Ext.toolbar.Toolbar', { dock: 'top', // 或者 'bottom' ...
在本实例中,我们可能会看到使用了诸如GridPanel(表格面板)来展示收支明细,FormPanel(表单面板)用于输入新的收支信息,以及可能用到Chart(图表)来可视化统计结果。 其次,系统中涉及的Java部分可能涉及到...