سؤال

كيف يمكنني الحصول على كائن الصف المحدد من 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, ، لذا تحقق من الوثائق هنا:

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.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top