拖放列重新排序是一项很棒的功能,但如何阻止用户移动特定(非数据)列?
例如,我使用复选框选择器作为我的多选网格,但此列应始终锁定在左侧,而其他列可以自由重新排序.
我使用Slickgrids有很多成功.我有ajax编辑所有工作 - 但我正在尝试添加一个功能;
下面是我的代码,它允许我更新单元格 - 它按预期工作 - 但我希望能够在用json数据返回的值编辑后更改单元格.请参阅下面的代码 - 我已经放入大写字母,我需要一个命令来使用新返回的数据更新已编辑的单元格
grid.onCellChange.subscribe(function(e, args) {
var dataString = "col="+grid.getColumns()[args.cell].name+"&row="+args.item.new_training_calendar_id+"&value="+data[args.row][grid.getColumns()[args.cell].field];
$.ajax({
type: "POST",
url: "mydomain/update_cell",
data: dataString, dataType: "json",
success: function(a) {
if(a.status != "ok") {
alert(a.msg);
undo();
} else {
alert(a.msg);
**CHANGE_CELL_HERE TO (a.newdata);**
}
return false;
} }); });
Run Code Online (Sandbox Code Playgroud) 编辑网格时,如果我在网格外单击,我编辑的框仍然可以编辑.当失去焦点时,如何让编辑过的单元格"完成"编辑?
我刚刚开始使用SlickGrid并对其质量感到惊讶.但是,当涉及到样式时,我没有找到任何推荐整体样式方法的文档或示例.有各种选项和API分散在各个地方,但很难从中提取策略.网格还利用了jQuery UI主题.不幸的是,那些干扰了我想要实现的目标.我们只为日历小部件和ui-darkness主题选择了jQuery UI.这个主题非常适合日历小部件,但网格需要覆盖它的每个方面.
这是一个jsFiddle,显示了我想要实现的外观:http://jsfiddle.net/nareshbhatia/3q6RD/.仅用于说明,它使用常规HTML表.但是我想使用SlickGrid实现完全相同的样式.这个jsFiddle中的CSS基本上是我对视觉设计师的要求,例如
#positions-table th {
background-color: #505050;
color: #eeeeee;
text-shadow: none;
font-size: 13px;
height: 40px;
line-height: 40px;
}
Run Code Online (Sandbox Code Playgroud)
编辑:我还创建了一个带有启动器SlickGrid实现的jsFiddle:http://jsfiddle.net/nareshbhatia/vJshY/.正如你所看到的,ui-darkness主题完全接管了!
我刚开始测试Slickgrid正在进行的项目,我对它的性能印象非常深刻.我有一个要求是对多列进行排序.我没有把头完全包裹在Slickgrid的Dataview中,所以也许我错过了一些明显的东西,但是有没有办法在多列上对网格进行排序?即使UI不能处理多个排序,我希望能够按顺序调用一个函数,加上升序或降序.我能够使用Datatables执行此操作,但它没有分组(项目的另一个要求).
在最坏的情况下,我将采取在服务器上进行排序并将内容提供回客户端静态排序.
我正在使用DataView填充网格,并使用过滤器与可见行进行交互.我的问题是在应用过滤器,行更改或行数更改后...如何访问数据视图以仅迭代那些可见行,例如进行一些计算?
因为行本身不是公开公开的...如果它们是,则行并不总是数据元素,因为也可以引用一个组,对吧?
那么有一种简单的方法来访问那些过滤后的数据元素吗?
(我想我正在寻找的是能够访问"var filteredItems = getFilteredAndPagedItems(_items,_filter);")
谢谢,
当render()方法完成其工作并将所有HTML元素附加到DOM 时,我需要执行一些操作.如何订阅onRenderEnds活动(没有这样的活动)?我可以在slickgrid代码之外编写自己的事件并将其附加到render()方法吗?
有一些事件,"onScroll", "onViewportChanged"但它们发生在render()完成之前(在某些情况下).
更新:我为列编写格式化程序:
formatter: function(row, cell, value, columnDef, dataContext){
return "<div class='operationList' data-my='" + myData + "'></div>";
}
Run Code Online (Sandbox Code Playgroud)
当网格渲染(应用我的格式化程序)时,我需要遍历所有".operationList" divs并将它们转换为其他构造(基于data-my属性).我需要".operationList" divs使用事件处理程序替换复杂的结构.
这段代码
slickgrid.onDblClick.subscribe(function(e){
var cell = slickgrid.getCellFromEvent(e);
console.log(cell.row, cell.cell);
});
Run Code Online (Sandbox Code Playgroud)
0, 0如果我双击第一列的第一行,则打印- 依此类推.
但由于列顺序可以在任何给定时间更改,我需要使用其索引获取其名称.
怎么做到这一点?
SlickGrid专注于显示表或数组中的数据,这很棒.Meteor专注于操纵数据,但使用Minimongo.SlickGrid如何与Minimonogo系列集成并保留其快速显示和大数据处理功能?
我目前的做法感觉不对,有点难看.我有一个单独的SlickGrid数组,并编写一些胶水代码来处理更新事件:
如何将Meteor数据光标直接绑定到SlickGrid并仅处理带有某些粘合代码的事件?或者可以使用Slick.dataview吗?目标是处理单元级别的更新.
这是一个历史悠久的.我正在编写一个MVC4应用程序,并且刚刚添加了一些代码,用于从控制器传递的JSON对象动态生成一些html.它在SlickGrid事件之后触发,用于双击从控制器获取数据并将一组新的JQ生成的html元素推送到页面的行.
现在为踢球者:
当双击行并看到HTML时,我的显示器(我相信)会发出沉闷的响声.html是一个各种各样的"窗口",因此有一个关闭信息的按钮(除了设置容器显示:none;).
当HTML可见时......听到铃声,当我点击关闭并隐藏HTML时,它会消失.这非常可靠.我不知道是什么原因引起的.这里有一些代码,但我怀疑它会给出任何见解
动态HTML生成功能:
function OrderDataDisplay(obj) {
var tabHTML = "<div id='__t" + obj.DepRunningNo + "' style='position: absolute;" +
"bottom: 0px;" +
"left: 20px;" +
"height: 17px;" +
"text-align: center;" +
"padding: 3px;" +
"width: 100px;" +
"background: -webkit-linear-gradient(top, rgb(20, 20, 20) 0%, rgb(53, 50, 50) 100%);" +
"border-top: 1px;" +
"border-left: 1px;" +
"border-right: 1px;" +
"border-style: ridge;" +
"border-color: #424242;" +
"color: #FFF;" +
"border-radius: 15px 15px 0 0;" +
"font-family: Geneva;" +
"font-size: 15px;'>Ticket #" + …Run Code Online (Sandbox Code Playgroud) slickgrid ×10
javascript ×3
jquery ×2
css ×1
hardware ×1
html ×1
lost-focus ×1
meteor ×1
minimongo ×1
sorting ×1
tablecolumn ×1