问题标签 [kogrid]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
77 浏览

knockout.js - 在 SPEAK UI 页面中实现 KoGrid.JS

我需要将 KoGrid.JS 集成到我的 SPEAK UI 自定义组件页面之一中。

但我面临以下问题:

获得 KO 是未定义的错误,因为它没有获得“Knockout.JS”的引用

我们发现的原因 - Speak UI 在渲染我们自己的自定义 JS 文件后最后渲染 Knockout.js。所以我们不能使用任何 Knockout 函数。

如何实现具有 KOGrid.JS 等功能的 Knockout Grid?

0 投票
2 回答
249 浏览

javascript - KO网格单元格的条件格式

我正在使用 kogrid 来显示数据,如下所示:

编辑批次

我的淘汰 vm 对 MVC 控制器进行 ajax 调用以检索形状如下的 DTO:

数据形状

我想用红色为具有未通过验证的值的单元格背景着色。例如,数据数组的第一个元素包含值为“False”的“CostCentreIsValid”成员,因此我希望第一行的“Cost Center (Dim1)”列为 RED。对于同一个数组元素,“AccountIsValid”成员包含值“True”,所以我希望第一行的“GL Account (Account)”单元格为绿色。

淘汰赛视图模型:

有没有人遇到过如何做到这一点的例子?

0 投票
1 回答
142 浏览

javascript - KOGrid 单元格模板 $parent 未定义

一个初学者级别的javascript问题...

我需要为我的 KOGrid 定义一个单元格模板,该模板依赖于我的 VM 中的值。如果关联字段为 True,我希望文本显示为绿色,否则显示为红色。

我有以下单元格模板:

这些在我的 columnDefs 中使用如下

这很好用,但我想通过一个返回单元格模板的辅助函数来减少代码重复。就像是:

这可以通过以下方式调用:

我的问题是当我尝试这个时,我得到 ReferenceError:$parent is not defined

解决这种复制和粘贴代码增长的最佳方法是什么 - 我将为许多领域提供相同的功能?

根据 Jason 的建议更新了代码 - 尚未工作

0 投票
1 回答
185 浏览

javascript - 需要让自定义复选框列在 KoGrid 中工作

我正在尝试显示一个包含一些基本显示数据的 KoGrid。该网格有一个嵌入的复选框,用于说明该节目是否为电影,另一个嵌入的复选框用于说明该节目是否为卡通片。下面提供了这个网格的 Javascript,在一个名为 testgrid.js 的文件中:

下面提供了我正在使用的 HTML:

网格不显示。显示的内容看起来像是网格显示的一部分,但什么也没有出现。

我做了一些故障排除。我发现问题在于我为 testgrid.js 中的 showTitles 对象中的复选框提供的 cellTemplate 定义中的“数据绑定”语句。如果我删除这些语句,网格会显示,但我无法选中或取消选中复选框,也无法获取复选框的状态。

有没有办法让这些复选框在 kogrid 中正常工作?如何让一个绑定到分配给它们的布尔值?

有人请指教。

为了完整起见,下面是名为 lstyles.css 的样式表:

复选框问题,续

感谢 donMateo,我做了一些更改,让我可以显示网格。一旦能够显示它,我就开始单击复选框以查看它们是否有效。他们没有——或者更确切地说,他们没有按照我希望的方式工作。

问题 1:我注意到的第一件事是复选框状态不反映它们绑定的数据。无论 isMovie 和 isCartoon 的值如何,每个节目的复选框都未选中。例如:Johnny Quest 将 isCartoon 设置为“true”。该列表将该框显示为未选中。星球大战侠盗一号将 isMovie 设置为 true。它的 isMovie 框未选中。图 1显示了我所看到的。

注意:此站点上嵌入的图像不起作用。即使链接图像似乎也被破坏了。我提供了指向我的网站的直接 HTTP 链接,希望它们足以说明。

我更改了我的选择代码,以便它调用一个函数,该函数显示一个警告框,其中显示了节目名称、isMovie 值和 isCartoon 值的值。选择 Johnny Quest,我看到 isMovie 和 isCartoon 值是正确的。所以我的第一个问题是:为什么复选框不反映其数据的值?

问题 2:我发现的另一个问题是,当我单击一个复选框时,它似乎没有保留我所做的更改。图 2显示了当我单击 Johnny Quest 的 isMovie 复选框时发生的情况。请注意,该复选框已选中,但警告框仍将 isMovie 值显示为 false。请注意,在复选框更改状态后会显示警报。

当我单击警报框的“确定”按钮时,请注意图 3中复选框如何返回到“未选中”状态。事实上,我们看到图 2中的复选框的唯一原因是因为警报框造成的延迟!我知道这一点,因为作为一个实验,我暂时删除了警告框,刷新了浏览器,然后单击了 Johnny Quest 的电影复选框。有一个复选框被按下的简短指示,然后复选框又回到未选中状态。所以我的第二个问题是:为什么复选框在选中或未选中时不显示适当的更改?

问题 3:我发现的第三个也是最令人不安的事情是,复选框的状态显然发生了变化——但它没有显示出这种变化,而且(更糟糕的是)它不会导致人们期望的变化。这可以通过重新显示网格中的数据来证明,在我的例子中是通过对数据进行排序。

当我启动网格时,显示的顺序是图 1中所示的顺序。如果我单击“显示名称”列,排序后的列表如图 4 所示

然后我点击 Johnny Quest 电影复选框,得到警告框,点击 Ok。图 5显示了复选框是如何保持不变的。

现在,当我再次点击“显示名称”列时,为了进行反向排序,请注意图 6中所有电影复选框的情况!

卡通复选框也会发生同样的事情。单击一个,单击警报框上的确定,然后采取措施。所有卡通复选框都将被选中。

要取消选中它们,只需单击一个复选框,注意警告框中显示的不正确状态,单击确定,然后采取措施。所有的框都将被取消选中。

所以我的第三个问题是:不同行中的复选框之间的联系是什么?更重要的是:我如何切断这个链接???

总结: KoGrod 在将控件放入自定义列时确实搞砸了。对于复选框:复选框显示的数据与假定绑定到的单个数据设置不同步。尝试更改复选框的选中状态不起作用,并且更改一个复选框会导致所有复选框都更改 - 但是在重绘网格(使用排序或可能的滚动或分页)之前您不会看到该更改。

这就引出了一个问题:单元格模板是否只是作为网格的显示模板?koGrid 甚至能够正确处理包含控件的自定义列吗?如果是这样,怎么做?不是,那我在哪里可以找到一个网格控件呢?

有人请指教。

下面提供了当前的 testgrid.js。没有其他文件被更改。

0 投票
3 回答
237 浏览

javascript - Javascript 转换为数组

我需要创建一个对象数组,每个对象都包含“LicenseRefNo”、“FPPRNO”等字段。

该网站对当前返回以下 json 的 C# 控制器进行 ajax 调用:

这似乎几乎是正确的,但我需要将其设置为 KOGrid 的 gridOptions.data 属性。似乎 javascript 代码遇到了问题,因为 KOGrid 需要是一个可观察的数组,并且要创建其中一个,我需要一个 javascript 数组。

请问如何将我拥有的字符串转换为数组?

0 投票
0 回答
40 浏览

javascript - KOGrids - Different Height on Same Page

Please excuse if this is a daft question - I am CSS clueless!

I have two ko grids on the same page. I'd like to be able have a different height for grid 1 compared to grid 2. Unfortunately, it seems the height cannot be set from the standard configuration options for ko grid: https://github.com/Knockout-Contrib/KoGrid/wiki/Configuration

From my example at: http://jsfiddle.net/BizTalkers/L0ce5jmy/2/ I've found that I can change the height by editing:

In my real application, the ko grid is displayed in a Razor view of an asp.net MVC website. I've found I can adjust the height of all ko grids by changing the height property in the following:

What would be the best way to adjust the height of the grids independently?

0 投票
1 回答
64 浏览

jquery - 禁用复选框 ColumnMenu kogrid

我有一个像http://knockout-contrib.github.io/KoGrid/#/examples这样的 ko-grid 。我想禁用列菜单中的特定复选框,如下图所示。我该怎么做? 在此处输入图像描述

先感谢您。

0 投票
1 回答
251 浏览

jquery - KoGrid 行选择绑定

我正在使用 KoGrid 插件来创建一个带有选择复选框的剔除网格。到目前为止,我有以下代码。

我只是想知道如何访问该selectedItems属性,以便可以将选定的值传递给 ajax 调用?

或者我可以不这样做并且必须使用该选项手动将选定的 Id 推送到数组afterSelectionChange

0 投票
1 回答
1047 浏览

javascript - KnockoutJs 指向新标签的超链接

我有一个在视图中使用 KnockoutJS 和 KOGrid 的 ASP.Net MVC 网站。它在一个特定列中动态呈现超链接,如下所示:

已经决定,当单击时,浏览器应在新选项卡中显示新页面。因此,我尝试添加“目标”属性,如下所示:

这没有用。超链接已呈现但无法单击。

我怎样才能做到这一点?

0 投票
1 回答
29 浏览

knockout.js - KOGrid 点击下一页按钮什么也不做

使用 KOGrid 我在 JS 视图模型中有以下内容:

我可以通过直接输入页码来浏览页面。导航返回按钮工作正常,但单击导航下一页或最后一页什么也不做。

我在同一网站的不同页面上有另一个 KOGrid 实例,并且工作正常。我使用了 Chrome devtools,并且从 Network 选项卡中,我可以看到单击上一个导航按钮时正在发出 Get 请求,但在下一个导航上没有发出请求。

有任何想法吗?