我可以在單元格A上使用自定義格式器來修改單元格B嗎?根據一個值的值設置多個列
回答
你原來的演示http://jsfiddle.net/fo3wb58w/12/顯示你想要的。一般而言,您已經使用一個格式化函數由多列共享。如果您點擊PLA
,MCO
,SUP
或REX
列的列標題,您將看不到任何反應。問題是:您使用datatype: "local"
,它保存data
和_index
參數中的網格的內部數據。在排序和過濾/搜索本地數據時將使用data
。格式化只是顯示相應數據的形式。因此,我建議您先填寫每列的列數據,然後再格式化數據。它將保存data
參數中的正確數據,並允許對數據進行排序和過濾。
演示的最簡單的修改將包括從包括localReader
localReader: {
repeatitems: true,
cell: function (item) {
var rowData = $.parseJSON(item.data);
rowData.data = item.data; // include the original data too
return rowData;
}
}
和修改您的自定義格式爲以下,例如,
function format (cellvalue) {
if (cellvalue !== undefined) {
return '<div class="led-box"><div class="' +
(cellvalue !== null ? 'led-green' : 'led-red') +
'"></div></div>';
} else {
return '';
}
}
見http://jsfiddle.net/OlegKi/fo3wb58w/14/。現在我們將填寫數據,這允許我們在那裏排序。我在演示中使用最新版本的免費jqGrid,因爲您在原始演示中使用的jqGrid 4.6具有處理localReader
(具有repeatitems: true
)的錯誤。
更多深修改將是http://jsfiddle.net/OlegKi/fo3wb58w/15/
var mydata = [
{ data: "{\"pla\":1,\"mco\":null,\"sup\":null}" },
{ data: "{\"pla\":null,\"mco\":1,\"sup\":1}" },
{ data: "{\"pla\":1,\"rex\":null}" }
],
sortRedGreen = function (value) {
switch (value) {
case 1:
return 2;
case null:
return 1;
default:
return 0;
}
},
formatRedGreen = function (cellvalue) {
if (cellvalue !== undefined) {
return '<div class="led-box"><div class="' +
(cellvalue !== null ? 'led-green' : 'led-red') +
'"></div></div>';
} else {
return '';
}
},
templateRedOrGreen = {
width: 48,
sorttype: sortRedGreen,
stype: "select",
searchoptions: { value: "undefined:Undef;null:Null;1:1", noFilterText: "Any"},
formatter: formatRedGreen
};
$("#grid").jqGrid({
data: mydata,
autoencode: true,
colModel: [
{ name: 'data', width: 250, search: false },
{ label: 'PLA', name: 'pla', template: templateRedOrGreen },
{ label: 'MCO', name: 'mco', template: templateRedOrGreen },
{ label: 'SUP', name: 'sup', template: templateRedOrGreen },
{ label: 'REX', name: 'rex', template: templateRedOrGreen }
],
localReader: {
repeatitems: true,
cell: function (item) {
var rowData = $.parseJSON(item.data);
rowData.data = item.data; // include the original data too
return rowData;
}
},
iconSet: "fontAwesome",
caption: "Stack Overflow Example"
}).jqGrid("filterToolbar");
它使用自定義功能sorttype
允許分選過程中重新排序的可能值undefined
,null
和1
。它使用filterToolbar
和
stype: "select",
searchoptions: { value: "undefined:Undef;null:Null;1:1", noFilterText: "Any"}
來簡化數據的過濾。
感謝您的努力。在我的現實生活中,我不使用本地數據,我使用服務器端分頁,因爲我有10000000多行可能的行:)。我會接受你的答案,雖然它沒有真正回答我的問題:)我的壞,我沒有正確地問它。順便說一句,我不想排序這些列。謝謝你的時間,並有一個良好的週末 – zouza
我不知道我們可以使用字體與jqgrid真棒:)所以謝謝你 – zouza
@zouza:不客氣!你可以看看[文章](http://free-jqgrid.github.io/getting-started/index.html)和[wiki](https://github.com/free-jqgrid/ jqGrid /維基) – Oleg
- 1. 根據另一個值設置CSS值
- 2. 根據linq查詢中的另一個值設置一個值
- 3. 根據另一個選擇的值設置一個組合框
- 4. 根據兩列或更多列的值設置數據幀
- 5. 根據另一個數據幀設置數據幀中的值
- 6. 根據另一個表中存在的值在SELECT語句中設置列值
- 7. 根據它的值賦值一個值
- 8. SQL根據一列值替換多個值
- 9. 根據所存在的值分配多個值中的一個
- 10. 根據多個值更新MySQL列
- 11. 根據另一個設置的值在SBT自動插件中有條件地設置多個設置
- 12. 如何填充根據不同值的多個列一列
- 13. ActiveRecord Migrations - 根據現有列的值設置新列的值
- 14. 根據其他三列中的值設置R列中的值
- 15. 根據SQL2005中列A中的值設置列B中的值?
- 16. 根據另一列值在新列中顯示一個值period123y
- 17. 根據另一個列表的值創建一個列表c#
- 18. R爲多個條件設置的值創建一個新列
- 19. 如何根據另一列的最大值獲取列的多個值?
- 20. Excel:根據多個選項的多個列的值的總和值
- 21. 根據某個列值重複一行?
- 22. 根據另一個散列中的值替換散列值
- 23. 根據活動單元格設置多個單元格值
- 24. wix:根據具體情況設置多個值
- 25. 根據多個標準設置默認值
- 26. 根據另一個值設置數組的鍵
- 27. Datepicker - 根據另一個元素的值設置minDate
- 28. 爲陣列設置多個鍵和值
- 29. 根據另一列中的最高值選擇一個值
- 30. WPF:根據其他列中的其他多個值設置單元格顏色?
這個問題是合法的。我不知道你爲什麼會拒絕投票。 – zouza
您是否可以包含至少2項數據並更詳細地描述您現在正在做什麼以及需要實施哪些內容?一切皆有可能,但必須瞭解更多關於您的問題的細節。你使用'datatype:「json」,loadonce:true'或'datatype:「local」'?您使用哪個版本的jqGrid(並可以使用)?您使用哪個jqGrid分支:[免費jqGrid](https://github.com/free-jqgrid/jqGrid),商業[Guriddo jqGrid JS](http://guriddo.net/?page_id=103334)或舊的jqGrid版本<= 4.7。你想在網格中擁有哪些列?你寫了關於「列A」,列結果,計數,總和...... – Oleg
通常你不需要循環數據。你想顯示*從服務器返回的數據部分*(通過「結果」過濾的數據)?你寫關於格式化......你需要什麼?例如,可以根據某些列的內容或輸入數據的屬性來更改某些單元格或某些行的顏色。根據來自不同屬性或不同列的信息,可以在列中構建真正的*內容*。你需要什麼。 – Oleg