/ मूल्य के परिवर्तन के आधार पर डोजो ग्रिड में सेल के डायनामिक रूप से बदलते रंग - डोजो, ग्रिड

मूल्य परिवर्तन के आधार पर डोजो ग्रिड में एक सेल का गतिशील रूप से रंग बदलना - डोजो, ग्रिड

मेरे पास एक डोजो ग्रिड है, जिसमें मुख्य रूप से 4 कॉलम हैं। ग्रिड शुरू में खाली है।

नीचे मेरा ग्रिड लेआउट है

var gridLayout = [{
defaultCell: { width: "8%", editable: true, type: dojox.grid.cells._Widget, styles: "text-align: right;"  },
rows: [
{ name: "Item Id", field: "ItemId",hidden:true},
{ name: "Type", field: "LineType", width: "8%",  type: dojox.grid.cells.Select,styles: "text-align: center;"},
{ name: "Amount", field: "Amount", width: "8%", styles: "text-align: center;", type: dojox.grid.cells.TextBox},
{ name: "Code", field: "Code", width: "8%", styles: "text-align: center;",formatter:changeCodeColor, type: dojox.grid.cells.TextBox}
]
}];

प्रपत्र में जोड़ें रेखा आइटम बटन पर क्लिक करेंएम्प्टी के रूप में अमाउंट के साथ सर्वर से प्राप्त आइटम खाली है, लेकिन प्रकार और कोड ऑटो पॉपुलेटेड है। यदि उपयोगकर्ता कोड सेल में मूल्य बदलता है तो मुझे कोड का रंग बदलने की आवश्यकता है। नीचे फ़ंक्शन है जो मैंने लिखा था

function changeCodeColor(code, rowIndex, cell)
{
var codeDetails = validateCode(code)
if(!codeDetails)
{
cell.customStyles.push("color:red");;
}
return code;
}

अगर कोड मान्य है या नहीं, तो वैरिडेटकोड फ़ंक्शन सर्वर में जांच करता है। यदि कोड मान्य नहीं है या यह लाल रंग के रूप में iam सेटिंग रंग उपलब्ध नहीं है।

लेकिन समस्या यह है कि यह कोड हर बार एक वैल्यू पॉपुलेटेड होता है (यानी मैन्युअल बदलाव के साथ-साथ सिस्टम अपने आप जुड़ जाता है)। मुझे केवल तभी सत्यापन करने की आवश्यकता है जब उपयोगकर्ता मैन्युअल रूप से बदलता है।

कोई मदद उपयोगी होगी

उत्तर:

जवाब के लिए 0 № 1

फॉर्मेटर का उपयोग यह परिभाषित करने के लिए किया जाता है कि आपके स्टोर से डेटा कैसे प्रदर्शित किया जाना चाहिए। ईवेंट हैंडलर के लिए, आपको इस तरह DataGrid से onCellClick इवेंट का उपयोग करना चाहिए,

var grid = new Grid({
store: store,
selectionMode: "single",
structure: [[
{ field: "name", name: "Name" }
]]}, dojo.byId("grid"));
grid.startup();

dojo.connect(grid, "onCellClick", function(e) {
var dataItem = grid.selection.getSelected();
console.dir(dataItem);
});