dojox.enhancedGrid الحصول على صف محدد
-
27-09-2019 - |
سؤال
كيف يمكنني الحصول على كائن الصف المحدد من dojox.enhancedGrid؟ أنا أستخدم SelectionMode: "واحد" على سبيل المثال مع أزرار الراديو.
dijit.byId("gridViewWidget").selection.selectedIndex
إرجاع rowindex. ولكن كيف تحصل على rowoBject لهذا الفهرس؟ يمكنني الحصول على rowNode()
لكن ما أحتاجه هو قيمة عمود المعرف لهذا الصف.
من الممكن أن تهز HTML DOM بواسطة rowNode()
ولكن هل هناك أي طريق مستقيم إلى الأمام؟
أنا أستخدم حاليًا dijit.byId("gridViewWidget").store._dataArray[i]
وتمرير الفهرس الذي تم إرجاعه. على الرغم من أن هذا يعمل يبدو أنه _dataarray هو خاصية خاصة. فهل من الآمن استخدام؟
المحلول
أنا جديد على Dojo بنفسي ، ولكن يجب أن يكون هذا مفيدًا إن لم يكن صحيحًا تمامًا. أولا قبل كل شيء، dojox.grid.enhancedGrid
تم بناؤه على رأسه dojox.grid.DataGrid
, ، لذا تحقق من الوثائق هنا:
grid.getItem(idx)
إرجاع المتجر "عنصر" في الفهرس المحددgrid.selection.getSelected()
إرجاع مجموعة من العناصر المحددة
يجب أن تكون قادرًا على استخدام أي منهما للحصول على العنصر الذي تريده.
نصائح أخرى
باستخدام الترميز التعريفي ، يمكنك القيام بشيء مثل (من الذاكرة ، قد تحتاج إلى التغيير والتبديل لتكون وظيفية):
<script type="text/javascript">
function formatThisColumn(rowIndex, rowObject) {
if (rowObject == null) return;
field = rowObject.i.fieldName;
return field;
}
</script>
<div dojoType="dojo.data.ItemFileReadStore" id="store" jsid="jsonStore" url="test.json"></div>
<table dojoType="dojox.grid.EnhancedGrid" id="gridNode" jsid="grid" store="store">
<thead>
<tr>
<th get="formatThisColumn">A Computed Column</th>
</tr>
</thead>
</table>
لاحظ وظيفة "FormatThiscolumn": يتم استدعاء هذا مرة واحدة على الأقل لكل صف في بيانات البيانات ، ويتم تمرير فهرس الصف (داخل عناصر JSON) وكائن يحتوي على العنصر "الحالي" (باستخدام فهرس "I" ). يمنحك هذا القيم الأصلية من استجابة JSON أثناء تقديم DataGrid.