我使用jqGrid 3.6.4和jquery 1.4.2.在我的示例中,我正在遵循json数据格式,我想将这些json数据映射到jqgrid的行中
{
"page": "1",
"total": 1,
"records": "6",
"rows": [
{
"head": {
"student_name": "Mr S. Jack ",
"year": 2007
},
"sub": [
{
"course_description": "Math ",
"date": "22-04-2010",
"number": 1,
"time_of_add": "2:00",
"day": "today"
}
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
我的jqgrid代码如下
jQuery("#"+subgrid_table_id).jqGrid({
url:"http://localhost/stud/beta/web/GetStud.php?sid="+sid,
dtatype: "json",
colNames: ['Stud Name','Year','Date'.'Number'],
colModel: [ {name:'Stud Name',index:'student_name', width:100, jsonmap:"student_name"},
{name:'Year',index:'year', width:100, jsonmap:"year"},
{name:'Date',index:'date', width:100, jsonmap:"date"},
{name:'Number',index:'number', width:100, jsonmap:"number"}
],
height:'100%',
jsonReader: { repeatitems : false, root:"head" },
});
Run Code Online (Sandbox Code Playgroud)
所以现在问题是我的数据,即student_name和year在"head"下,jqgrid可以找到这两个字段.同时其他两个列值,即日期和数字位于"子"下,甚至那些列我无法用jqgrid映射它
请帮助我如何在JQGrid中找到这些属性.
谢谢
我使用jqGrid包含许多包含布尔信息的列,这些列在表格中显示为复选框(请参阅http://www.ok-soft-gmbh.com/VerticalHeaders/TestFixedO.htm作为示例).为了更紧凑地显示信息,我使用垂直列标题.它运行良好,适用于所有浏览器的jqGrid(请参阅我在jqGrid论坛中与Tony Tomov的讨论http://www.trirand.com/blog/?page_id=393/feature-request/headers-with-vertical-orientation/),但在IE中垂直文字模糊,看起来不够好(打开IE上面的链接,你会看到我的意思).我被问到用户为什么文本显示得如此奇怪.所以我正在考虑使用基于JavaScript的SVG库,如SVG Web(http://code.google.com/p/svgweb/)或Raphaël(http://raphaeljs.com/).SVG非常强大,很难找到一个好的例子.我只需要显示垂直文本(-90 grad,自下而上)并尽可能使用,而无需在绝对定位模式下工作.
所以还有一次我的问题:我需要有可能在表头的元素内显示垂直文本(-90 grad rotation)<td>.我想使用基于JavaScript的SVG库,如SVG Web或Raphaël.解决方案必须支持IE6.有没有人有一个很好的参考例子可以帮助我做到这一点?如果有人发布了问题的完整解决方案,我会很高兴.
确切地说,这是我目前的解决方案:我定义
.rotate
{
-webkit-transform: rotate(-90deg); /* Safari 3.1+, Chrome */
-moz-transform: rotate(-90deg); /* Firefox 3.5+ */
-o-transform: rotate(-90deg); /* Opera starting with 10.50 */
/* Internet Explorer: */
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); /* IE6, IE7 */
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)" /* IE8 */;
}
Run Code Online (Sandbox Code Playgroud)
定义RotateCheckboxColumnHeaders功能
var RotateCheckboxColumnHeaders = function (grid, headerHeight) …Run Code Online (Sandbox Code Playgroud) 我试图将一个普通的旧html表转换为jqGrid.旧表有一个包含标签的列,这些标签使用无序列表和列表项构建.
这是前面表格的一个例子(jsfiddle)和之后的jqGrid.
在这个例子中,我使用自定义格式化程序,它使用jQuery模板构建DOM元素,然后格式化程序从结果DOM元素返回$ .html().
function getTagCellContents(cellvalue) {
var domitems=$("#jqgrid-tag-list-item").tmpl({tags: callvalue});
return domitems.html();
}
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是生成的html中包含的空格导致行太高.这也导致单元格上的"标题"属性笨拙.
jqGrid是否提供了一个API,用于将DOM对象直接插入到单元格中,而不是从自定义格式化程序返回文本?将自定义html放入jqGrid单元格的最佳做法是什么?
我有一个愚蠢的问题.一个jQuery.ajax请求返回我一个完整的HTML文本为字符串.我在服务器上出现错误时收到此类响应.服务器给我一个错误描述,我想放在当前页面的相应位置.
所以现在问题是:我有一个包含完整HTML文档的字符串(不是XML !!!请参阅<hr>里面的元素).我需要只有BODY部分作为jQuery对象.然后我可以将它附加到我页面的相应部分.
这是我需要解析的字符串示例:
<html>
<head>
<title>The resource cannot be found.</title>
<style>
body {font-family:"Verdana";font-weight:normal;font-size: .7em;color:black;}
p {font-family:"Verdana";font-weight:normal;color:black;margin-top: -5px}
// ...
</style>
</head>
<body bgcolor="white">
<span><H1>Server Error in '/' Application.<hr width=100% size=1 color=silver></H1>
<h2> <i>The resource cannot be found.</i> </h2></span>
<font face="Arial, Helvetica, Geneva, SunSans-Regular, sans-serif ">
<b> Description: </b>HTTP 404. The resource you are looking for ...bla bla....
<br><br>
<b> Requested URL: </b>/ImportBPImagesInfos/Repository.svc/GetFullProfilimageSw<br><br>
<hr width=100% size=1 color=silver>
<b>Version Information:</b> Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.1 …Run Code Online (Sandbox Code Playgroud) 问题:jqGrid有子网格.我想为主网格的某些行禁用展开/折叠功能.
当存在大量页面时,寻呼机中的数字格式为"11 223",但我希望它为"11,223"
查看11 026 - 11 031的11 031
应该
查看11,026 - 11,031的11,031
我搜索了JQGrid的文档,但找不到这样做的方法.
如何将json格式的jqGrid数据发送到服务器?我是否必须使用任何外部库或脚本来实现这一目标?
谢谢!
update1:extra licensePlateNumber不应该在那里
[
{
"licensePlateNumber": ""
},
{
"licensePlateNumber": "0000000000000029000721804",
"sku": "795127",
"description": "",
"caseQuantity": "24",
"isHeld": "false",
"expirationDate": "Jul 22, 2010 12:00:00 AM"
},
{
"licensePlateNumber": "0000000000000029000722323",
"sku": "795127",
"description": "",
"caseQuantity": "24",
"isHeld": "false",
"expirationDate": "Jul 22, 2010 12:00:00 AM"
},
{
"licensePlateNumber": "0000000000000029000722669",
"sku": "795127",
"description": "",
"caseQuantity": "24",
"isHeld": "false",
"expirationDate": "Jul 22, 2010 12:00:00 AM"
}
]
Run Code Online (Sandbox Code Playgroud) 我需要传递userData给jqgrid,但找不到任何如何执行此操作的示例.这是我的尝试:
从服务器发送:
{ total: 25,
page: currentpage,
userData: {foo: 'bar'},
rows: myRows }
Run Code Online (Sandbox Code Playgroud)
在jqgrid中:
var data = jQuery("#grid").getGridParam('userData');
Run Code Online (Sandbox Code Playgroud)
如何userData从jqgrid 发送和读取它?
编辑:我知道我userData被送了,因为我可以在Fiddler看到它.我想我只是坚持如何在客户端阅读它.
我一般不喜欢使用Excel和Microsoft产品,但Excel 2007/2010有一些非常好的条件格式化功能,遗憾的是,到目前为止我还没有在其他许多地方看到过.我在商业报告中广泛使用的其中一个是数据栏. http://blogs.msdn.com/b/excel/archive/2009/08/07/data-bar-improvements-in-excel-2010.aspx
在我看来,这些数据栏非常有助于理解数字之外的数据含义.虽然200到2000个用户之间的差异只是人眼难以理解的数字,但是长10倍的条形更加直观.
我的问题:有没有办法在jqGrid中为列的每个值包含单元格条件数据条,镜像Excel功能?这是我看到摆脱Excel工作表并在在线报告系统中实施报告的唯一方法.一旦您习惯了数据栏,它们就是必不可少的,而且它们是我们仍然使用Excel进行报告的唯一原因.
如果我假设在jqGrid中没有这样的内置功能,你认为自定义构建它会有很多工作吗?你有任何想法,最好的办法是什么?
似乎有许多解决方案非常接近于解决我的问题,但是我所倾倒的几十个问题似乎并没有完全解决我正在尝试做的事情.虽然我看到几乎同样的问题没有答案.我尝试了很多选项和功能组合无济于事.
我想使用模态表单将带有输入值的新行添加到jqGrid,但我不希望它在提交时发布到服务器.我想最终发布到服务器,但只有在客户端用户对从模式表单添加的行执行了额外编辑(如果需要)之后.我不希望任何行保存到远程数据库,直到客户端执行了一些编辑,这些编辑又动态更新其他列.验证某个值的某个状态后,将显示"保存"按钮,并且可以将"网格"行发布到服务器.除非满足此验证条件,否则不会将行提交给数据库.我在我的应用程序的其他地方使用了一些jqGrids,它们发布了提交的模式表单的新行数据,但是这个网格我试图完成与客户端不同的东西,而不是立即涉及服务器.我喜欢使用客户端用户初始输入值的模态表单的更直观的界面,然后根据需要编辑内联新行的字段,这是我的问题所必需的:我可以将表单作为新行提交发生在服务器上的任何发布操作?
我在jqGrid Wiki资源中看到一个用户发表的评论,该用户说"clientArray"是输入的值,使用Grids模态表单提交选项"editurl:"clientArray"模式表单不会吐出"No URL is set "消息但它仍然存在并且新行未添加到网格中.我已将Grid数据类型设置为本地"数据类型:'clientSide'"但是获得相同的"No URL is set"错误消息.脚本是对于由自定义按钮调用的模态窗体非常简单,如下所示:
("footerrow,userDataOnFooter和altRows"选项作为更新值的一部分包含在摘要页脚中,该页脚与通过模态表单添加的新行的单元格执行的编辑相关)
jQuery("#grid_test").jqGrid({
url:'/grid_test_url.asp?id=' + vId,
datatype: "clientSide",
colNames: ['ID','Col 1', 'Col 2', 'Col 3','Col 4'],
colModel: [
{name:'id',index:'id',width:90,align:"center",editable:true,editoptions:{size:25}, formoptions: {...}, editrules: {...}},
{name:'col1',index:'col1',width:130,align:"right",editable:true,editoptions:{size:25}, formoptions: {}, editrules: {}},
{name:'col2',index:'col2',width:130,align:"right",editable:true,editoptions:{size: 25}, formoptions: {}, editrules: {}},
{name:'col3',index:'col3',width:130,align:"right",editable: true,editoptions:{size:25}, formoptions: {}, editrules: {}},
{name:'col4',index:'col4',width:130,align:"right",editable:true,editoptions:{ size: 25 }, formoptions: {}, editrules: {}}
],
rowNum:5,
rowList:[5,10,20],
pager: '#pgrid_test',
toolbar: [true, "top"],
editurl: '', //not sure what would go here to block attempted post by the …Run Code Online (Sandbox Code Playgroud) jqgrid ×9
jquery ×7
javascript ×3
json ×3
subgrid ×2
cell ×1
dom ×1
editing ×1
form-editing ×1
formatting ×1
jqgrid-php ×1
local ×1
pager ×1
svg ×1
user-data ×1