html代码<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"> <link rel="stylesheet" href="web.css">
<link rel="stylesheet" href="easyui/themes/default/easyui.css">
<link rel="stylesheet" href="easyui/themes/icon.css">
<script src="easyui/jquery-1.4.2.min.js"></script>
<script src="easyui/jquery.easyui.min.js"></script>
<script src="queryView.js" type="text/javascript"></script>
</head>
<body class="easyui-layout"> <div region="center" border="false">
<table id="grid" style="background-color:Red"></table>
</div>
</body></html>js脚本 //公用的函数放到闭包外面var lastIndex;
function doAdd() {
// grid 增加一行, 并且进入编辑模式
$('#grid').datagrid('cancelEdit', lastIndex);
$('#grid').datagrid('appendRow', {
dataViewId : '001'
}); var lastRowIndex = $('#grid').datagrid('getRows').length - 1;
$('#grid').datagrid('beginEdit', lastRowIndex);
lastIndex = lastRowIndex;
}function doDelete() {
if (checkSelection() == false)
return false; var ids = [];
var items = $('#grid').datagrid('getSelections');
for ( var i = 0; i < items.length; i++) {
ids.push(items[i].code);
} alert(ids.join(",")) // 通过ajax删除数据, 可以避免一次查询 // FIXME: 如何得到当前选中的行号呢?
// $('#grid').datagrid('deleteRow', index);
}$(document).ready(function() {$('#grid').datagrid({
iconCls: 'icon-forward',
fit: true,
border: false,
rownumbers: true,
striped: true,
// pageList: [30,50,100],
// pagination : true,
// singleSelect : true,
toolbar: toolbar,
url: "queryView.json",
idField: 'itemId',
// frozenColumns : frozenColumns,
columns: columns
// onClickRow : onClickRow,
//onDblClickRow: doDblClickRow
});});
function checkSelection(){
var items = $('#grid').datagrid('getSelections');
if (items.length == 0){
$.messager.show({title:"提示",msg:'请先选择记录',timeout:3000});
return false;
}
return true;
}function doSave() {
// 必须endEdit后才能算数
$('#grid').datagrid('endEdit', lastIndex);
var rows = $('#grid').datagrid('getChanges');
alert('changed rows: ' + rows.length + ' lines');
// 保存修改后的数据
// ajax 形式保存
// 在grid接受本次的改动
$('#grid').datagrid('acceptChanges');
}// 把双击改为弹出 easyui 的 window/dialog进行edit, 并且保存后刷新list
function doDblClickRow(rowIndex, rowData) {
// alert('row: ' + rowIndex + '\r\n' + 'addr:' + rowData.addr)
if (lastIndex != rowIndex) {
var t1 = new Date().getTime();
$('#grid').datagrid('endEdit', lastIndex);
$('#grid').datagrid('beginEdit', rowIndex);
var t2 = new Date().getTime();
}
lastIndex = rowIndex;
}// 设置列渲染器( FIXME: 没有行渲染器? 如何设置行的颜色)
function editStyleRenderer(val, rec) {
var value = parseTree(val, editStyleData);
if (value == null) value = val;
return value;
}function parseTree(id, data){
for(var i=0,len=data.length;i<len;i++){
if (data[i].id == id)
return data[i].text;
var children = data[i].children;
if (children){
var val = parseTree(id, children);
if (val) return val;
}
}
return null;
}function dispTypeRenderer(val, rec) {
for(var i=0,len=dispTypeData.length;i<len;i++){
if (dispTypeData[i].id == val)
return dispTypeData[i].text;
}
}// 可根据元数据配置来产生字典项目, 用于获得id
// 或者在生成 json 的时候, 把id,name都生成,如: "userId":"001", "_userId_name":"manager"
var editStyleData = [ {
"id" : "01",
"text" : "下拉字典",
"state" : "closed",
"children" : [ {
"id" : "0101",
"text" : "性别"
}, {
"id" : "0102",
"text" : "单位"
} , {
"id" : "0103",
"text" : "部门"
} ]
}, {
"id" : "02",
"text" : "掩码录入",
"state" : "closed",
"children" : [ {
"id" : "0201",
"text" : "yyyy"
}, {
"id" : "0202",
"text" : "yyyy-MM"
} , {
"id" : "0203",
"text" : "yyyy-MM-dd"
} ]
},{
"id" : "03",
"text" : "其他",
"state" : "closed",
"children" : [ {
"id" : "0301",
"text" : "主键 UUID"
}, {
"id" : "0302",
"text" : "主键手工赋值"
} , {
"id" : "0303",
"text" : "主键数值自增"
} , {
"id" : "0304",
"text" : "乐观锁定"
} , {
"id" : "0305",
"text" : "排序号"
} , {
"id" : "0306",
"text" : "备注"
} ]
} ];
// 用于grid反显和编辑
var dispTypeData = [ {
"id" : "",
"text" : "[请选择]",
"selected" : true
}, {
"id" : "00",
"text" : "不处理"
}, {
"id" : "01",
"text" : "显示"
}, {
"id" : "02",
"text" : "只读"
}, {
"id" : "03",
"text" : "隐藏"
} ];
// editor// 列编辑器
var itemNameEditor = {
type : 'text'
};
var itemCnameEditor = {
type : 'text'
};var editStyleEditor = {
type : 'combotree',
options : {
//url : '../data/editStyle.json',
data:editStyleData,
width : 155,
treeWidth : 200
}
};var dispTypeEditor = {
type : 'combobox',
options : {
//url : '../data/dispType.json',
data:dispTypeData,
valueField : 'id',
textField : 'text',
width : 155,
listWidth : 200,
editable : true
}
};var dispWidthEditor = {
type : 'numberbox',
options : {
min : 0,
max : 10000,
precision : 0
}
};// var birthdayEditor = {
// type:'datebox',
// options:{
// formatter: dateFormatter,
// parser: dateParser
// }
// };// 定义标题栏
var columns = [ [ {
field : 'itemId',
title : '项目id',
checkbox : true
}, {
field : 'itemName',
title : '英文名称',
width : 100,
align : 'center',
editor : itemNameEditor
}, {
field : 'itemCname',
title : '备注名称',
width : 120,
align : 'center',
editor : itemCnameEditor
}, {
field : 'editStyleId',
title : '编辑样式',
width : 120,
align : 'center',
formatter : editStyleRenderer,
editor : editStyleEditor
}, {
field : 'dispType',
title : '显示类型',
width : 120,
align : 'center',
formatter : dispTypeRenderer,
editor : dispTypeEditor
}, {
field : 'dispWidth',
title : '显示宽度',
width : 120,
align : 'center',
editor : dispWidthEditor
} ] ];// 定义工具条
var toolbar = [ {
text : '新增',
iconCls : 'icon-add',
handler : doAdd
}, {
text : '删除',
iconCls : 'icon-cancel',
handler : doDelete
}, {
text : '保存',
iconCls : 'icon-save',
handler : doSave
} ];json文件{
"total":0,
"rows":[
{"itemId":"001","dataViewId":"001","itemName":"userId","itemCname":"用户id","editStyleId":"01","dispType":"03","dispWidth":0 },
{"itemId":"002","dataViewId":"001","itemName":"userName","itemCname":"用户名","editStyleId":"00","dispType":"01","dispWidth":120 },
{"itemId":"003","dataViewId":"001","itemName":"genderId","itemCname":"性别","editStyleId":"02","dispType":"01","dispWidth":120 },
{"itemId":"004","dataViewId":"001","itemName":"birthday","itemCname":"生日","editStyleId":"01","dispType":"01","dispWidth":120 },
{"itemId":"005","dataViewId":"001","itemName":"lockVersion","itemCname":"乐观锁定","editStyleId":"02","dispType":"03","dispWidth":0 }
]
}
很奇怪的问题,我单独打开html页面有数据显示
可在IIS上和直接用vs右击浏览就不行,有什么区别啊,急等
<html>
<head>
<meta charset="UTF-8"> <link rel="stylesheet" href="web.css">
<link rel="stylesheet" href="easyui/themes/default/easyui.css">
<link rel="stylesheet" href="easyui/themes/icon.css">
<script src="easyui/jquery-1.4.2.min.js"></script>
<script src="easyui/jquery.easyui.min.js"></script>
<script src="queryView.js" type="text/javascript"></script>
</head>
<body class="easyui-layout"> <div region="center" border="false">
<table id="grid" style="background-color:Red"></table>
</div>
</body></html>js脚本 //公用的函数放到闭包外面var lastIndex;
function doAdd() {
// grid 增加一行, 并且进入编辑模式
$('#grid').datagrid('cancelEdit', lastIndex);
$('#grid').datagrid('appendRow', {
dataViewId : '001'
}); var lastRowIndex = $('#grid').datagrid('getRows').length - 1;
$('#grid').datagrid('beginEdit', lastRowIndex);
lastIndex = lastRowIndex;
}function doDelete() {
if (checkSelection() == false)
return false; var ids = [];
var items = $('#grid').datagrid('getSelections');
for ( var i = 0; i < items.length; i++) {
ids.push(items[i].code);
} alert(ids.join(",")) // 通过ajax删除数据, 可以避免一次查询 // FIXME: 如何得到当前选中的行号呢?
// $('#grid').datagrid('deleteRow', index);
}$(document).ready(function() {$('#grid').datagrid({
iconCls: 'icon-forward',
fit: true,
border: false,
rownumbers: true,
striped: true,
// pageList: [30,50,100],
// pagination : true,
// singleSelect : true,
toolbar: toolbar,
url: "queryView.json",
idField: 'itemId',
// frozenColumns : frozenColumns,
columns: columns
// onClickRow : onClickRow,
//onDblClickRow: doDblClickRow
});});
function checkSelection(){
var items = $('#grid').datagrid('getSelections');
if (items.length == 0){
$.messager.show({title:"提示",msg:'请先选择记录',timeout:3000});
return false;
}
return true;
}function doSave() {
// 必须endEdit后才能算数
$('#grid').datagrid('endEdit', lastIndex);
var rows = $('#grid').datagrid('getChanges');
alert('changed rows: ' + rows.length + ' lines');
// 保存修改后的数据
// ajax 形式保存
// 在grid接受本次的改动
$('#grid').datagrid('acceptChanges');
}// 把双击改为弹出 easyui 的 window/dialog进行edit, 并且保存后刷新list
function doDblClickRow(rowIndex, rowData) {
// alert('row: ' + rowIndex + '\r\n' + 'addr:' + rowData.addr)
if (lastIndex != rowIndex) {
var t1 = new Date().getTime();
$('#grid').datagrid('endEdit', lastIndex);
$('#grid').datagrid('beginEdit', rowIndex);
var t2 = new Date().getTime();
}
lastIndex = rowIndex;
}// 设置列渲染器( FIXME: 没有行渲染器? 如何设置行的颜色)
function editStyleRenderer(val, rec) {
var value = parseTree(val, editStyleData);
if (value == null) value = val;
return value;
}function parseTree(id, data){
for(var i=0,len=data.length;i<len;i++){
if (data[i].id == id)
return data[i].text;
var children = data[i].children;
if (children){
var val = parseTree(id, children);
if (val) return val;
}
}
return null;
}function dispTypeRenderer(val, rec) {
for(var i=0,len=dispTypeData.length;i<len;i++){
if (dispTypeData[i].id == val)
return dispTypeData[i].text;
}
}// 可根据元数据配置来产生字典项目, 用于获得id
// 或者在生成 json 的时候, 把id,name都生成,如: "userId":"001", "_userId_name":"manager"
var editStyleData = [ {
"id" : "01",
"text" : "下拉字典",
"state" : "closed",
"children" : [ {
"id" : "0101",
"text" : "性别"
}, {
"id" : "0102",
"text" : "单位"
} , {
"id" : "0103",
"text" : "部门"
} ]
}, {
"id" : "02",
"text" : "掩码录入",
"state" : "closed",
"children" : [ {
"id" : "0201",
"text" : "yyyy"
}, {
"id" : "0202",
"text" : "yyyy-MM"
} , {
"id" : "0203",
"text" : "yyyy-MM-dd"
} ]
},{
"id" : "03",
"text" : "其他",
"state" : "closed",
"children" : [ {
"id" : "0301",
"text" : "主键 UUID"
}, {
"id" : "0302",
"text" : "主键手工赋值"
} , {
"id" : "0303",
"text" : "主键数值自增"
} , {
"id" : "0304",
"text" : "乐观锁定"
} , {
"id" : "0305",
"text" : "排序号"
} , {
"id" : "0306",
"text" : "备注"
} ]
} ];
// 用于grid反显和编辑
var dispTypeData = [ {
"id" : "",
"text" : "[请选择]",
"selected" : true
}, {
"id" : "00",
"text" : "不处理"
}, {
"id" : "01",
"text" : "显示"
}, {
"id" : "02",
"text" : "只读"
}, {
"id" : "03",
"text" : "隐藏"
} ];
// editor// 列编辑器
var itemNameEditor = {
type : 'text'
};
var itemCnameEditor = {
type : 'text'
};var editStyleEditor = {
type : 'combotree',
options : {
//url : '../data/editStyle.json',
data:editStyleData,
width : 155,
treeWidth : 200
}
};var dispTypeEditor = {
type : 'combobox',
options : {
//url : '../data/dispType.json',
data:dispTypeData,
valueField : 'id',
textField : 'text',
width : 155,
listWidth : 200,
editable : true
}
};var dispWidthEditor = {
type : 'numberbox',
options : {
min : 0,
max : 10000,
precision : 0
}
};// var birthdayEditor = {
// type:'datebox',
// options:{
// formatter: dateFormatter,
// parser: dateParser
// }
// };// 定义标题栏
var columns = [ [ {
field : 'itemId',
title : '项目id',
checkbox : true
}, {
field : 'itemName',
title : '英文名称',
width : 100,
align : 'center',
editor : itemNameEditor
}, {
field : 'itemCname',
title : '备注名称',
width : 120,
align : 'center',
editor : itemCnameEditor
}, {
field : 'editStyleId',
title : '编辑样式',
width : 120,
align : 'center',
formatter : editStyleRenderer,
editor : editStyleEditor
}, {
field : 'dispType',
title : '显示类型',
width : 120,
align : 'center',
formatter : dispTypeRenderer,
editor : dispTypeEditor
}, {
field : 'dispWidth',
title : '显示宽度',
width : 120,
align : 'center',
editor : dispWidthEditor
} ] ];// 定义工具条
var toolbar = [ {
text : '新增',
iconCls : 'icon-add',
handler : doAdd
}, {
text : '删除',
iconCls : 'icon-cancel',
handler : doDelete
}, {
text : '保存',
iconCls : 'icon-save',
handler : doSave
} ];json文件{
"total":0,
"rows":[
{"itemId":"001","dataViewId":"001","itemName":"userId","itemCname":"用户id","editStyleId":"01","dispType":"03","dispWidth":0 },
{"itemId":"002","dataViewId":"001","itemName":"userName","itemCname":"用户名","editStyleId":"00","dispType":"01","dispWidth":120 },
{"itemId":"003","dataViewId":"001","itemName":"genderId","itemCname":"性别","editStyleId":"02","dispType":"01","dispWidth":120 },
{"itemId":"004","dataViewId":"001","itemName":"birthday","itemCname":"生日","editStyleId":"01","dispType":"01","dispWidth":120 },
{"itemId":"005","dataViewId":"001","itemName":"lockVersion","itemCname":"乐观锁定","editStyleId":"02","dispType":"03","dispWidth":0 }
]
}
很奇怪的问题,我单独打开html页面有数据显示
可在IIS上和直接用vs右击浏览就不行,有什么区别啊,急等
这个问题,在aspx页面中,是不支持.json文件的,可以换成 .aspx文件 后台输出json数据。
服务器中的代码 public void loadorder(HttpContext context)
{
context.Response.ContentType = "text/plain";
context.Response.Charset = "utf-8";
try
{
conn.Open();
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter("select a.orderID as code,a.charge as totalPrice,a.freightTime as precontractTime,b.statusID as reason from WorkOrder a inner join OStatus b on a.statusID=b.statusID ", conn);
da.Fill(ds);
StringBuilder sbvoca = new StringBuilder();
// sbvoca.Append("{\"voce\":[");
sbvoca.Append("{");
if (ds != null && ds.Tables[0].Rows.Count > 0)
{
sbvoca.Append("total:" + ds.Tables[0].Rows.Count + ",");
sbvoca.Append("rows:[");
int i = 1;
int count = ds.Tables[0].Rows.Count;
foreach (DataRow dr in ds.Tables[0].Rows)
{
if (i == count)
{
sbvoca.Append("{\"code:\"" + dr[0] + "\",\"totalPrice\":\"" + dr[1] + "\",\"freightTime\":\"" + dr[2] + "\",\"reason\":\"" + dr[3] + "\"}");
}
else
{
sbvoca.Append("{\"code\":\"" + dr[0] + "\",\"totalPrice\":\"" + dr[1] + "\",\"freightTime\":\"" + dr[2] + "\",\"reason\":\"" + dr[3] + "\"},");
}
i++;
} }
else
{
sbvoca.Append("total:" + 0 + ",");
sbvoca.Append("rows:[");
} sbvoca.Append("]}");
da.Dispose();
ds.Dispose();
conn.Close(); context.Response.Write(sbvoca.ToString()); context.Response.End(); }
catch
{
conn.Close();
}
}