gpt4 book ai didi

javascript - 为什么这个数据网格以奇怪的顺序排序?

转载 作者:行者123 更新时间:2023-11-30 18:27:02 25 4
gpt4 key购买 nike

我有一个数据网格,其中每一行都有一列,我在其中定义了一个格式化程序,根据它在数据库中的内容来格式化显示结果,并创建一个 div。背景颜色取决于数据库。

我的数据网格有这样的结构:

structure: [
{
name: "Name",
field: "name",
width: "auto"
},
{
name: "Initials",
field: "initials"
},
{
name: "E-mail",
field: "email",
width: "auto"
},
{
name: "Kerberos",
field: "kerberos",
width: "120px",
formatter: function(kerberos){
var format = "";

if(kerberos == "password expired" || kerberos == "account expired"){
format = '<div class="yellow" title="'+kerberos+'">'+kerberos+'</div>';
}else if(kerberos == "ok"){
format = '<div class="green" title="'+kerberos+'">'+kerberos+'</div>';
}else{
format = '<div class="red" title="Has no kerberos account">not available</div>';
}

return format;
}
},

当我按列标题进行排序时,它对行进行排序,放置不一致,所以我不知道它是否正确排序(见下图)。如何定义数据网格对该列进行排序的方式?

How it sorts

我以为是 HTML <div...>由于 <>,我在格式化程序中所做的部分字符,但如果我只输出文本(根据我的理解,应该按字母顺序排序),它仍然很奇怪。有谁知道为什么会发生这种情况以及我该如何解决?

编辑:忘记添加我如何获取/分配数据。我从一个 JSON 格式的 xhr.post 中得到了很多数据,然后我做了如下操作:

dojo.xhr.post({
url: "/cgi-bin/users.cgi",
handleAs: "json",
content: {
psearch: "dojoXhrBlank"
},
load: function(jsondata){
// Creating a store for the datagrid
var personStore = new Memory({ data: jsondata });

// Create datastore for datagrid
var gridStore = ObjectStore({objectStore: personStore});
...

最佳答案

我找到了答案。问题出在ObjectStore .这家商店(出于某种原因)在将商店类型更改为 ItemFileReadStore 后无法正确排序它正确排序。切换商店的另一个原因是 ItemFileReadStore还支持 comparatorMap允许自定义排序的属性,ObjectStore不支持此属性。

解决方法:

load: function(jsondata){      
var store = new ItemFileReadStore({
data: { identifier: "id", items: jsondata }
});

pgrid = new DataGrid({
store: store,
...

关于javascript - 为什么这个数据网格以奇怪的顺序排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10583034/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com