عرض تسمية مخصصة من متجر البيانات مع dojox.charting
-
21-09-2019 - |
سؤال
أنا أستخدم dojox.charting.widget.Chart2D
وأنا أحاول استرداد البيانات من dojo.data.ItemFileReadStore
. يمكنني استرداد البيانات ، وكل شيء يعمل ويعرض ، إلا أنه لا يمكنني العثور على طريقة لعرض ملصقات مخصصة على العناصر. مقتطف HTML الخاص بي هو:
<div dojoType="dojo.data.ItemFileReadStore" jsId="chartDataStore"
url="json/archiveinfo.json.php"></div>
<div dojoType="dojox.charting.widget.Chart2D" id="chartTest"
theme="dojox.charting.themes.PlotKit.blue" style="width: 300px; height: 300px;">
<div class="plot" name="default" type="Pie" fontColor="black" htmlLabels="false"
radius="100"></div>
<div class="series" name="Series A" store="chartDataStore" field="y"
label="text" valueFn="Number(x)"></div>
<div class="action" type="Tooltip"></div>
<div class="action" type="MoveSlice"></div>
</div>
و json الخاص بي من itemFilereadStore هو:
{"identifier":"id","labelAttribute":"text","items":
[
{"id":1,"y":55,"text":"Free"},
{"id":2,"y":45,"text":"Used"}
]
}
لقد حاولت تعيين سمة التسمية في السلسلة وقمت بتعيين ملف labelAttribute
في JSON. لقد حاولت أيضًا فقط label
في JSON ولم ينجح ذلك أيضًا. عندما أقوم بتقديم البيانات كـ JSON في array
أو توفير data
مباشرة في السلسلة ، أحصل على الملصقات للعمل. أردت حقًا أن أجعلها أكثر مرونة من خلال توفير البيانات عبر مخزن بيانات.
المحلول
طريقة القيام بذلك هي تعديل JSON قليلاً وتحديث السمات المقابلة في HTML.
JSON:
{
"items": [
{"id":1, "slice": {"y":55,"text":"Free"}},
{"id":2, "slice": {"y":45,"text":"Used"}}
]
}
التغيير الوحيد ذو معنى هو فصل البيانات الخاصة بالفطيرة في كائن فرعي (slice
) للبساطة.
HTML (يجب تعديل الخط المتعلق بالمتجر فقط):
<div class="series" name="Series A"
store="chartDataStore" field="slice"></div>
أعلمني كيف سيسير الامر.
نصائح أخرى
اضطررت إلى مواجهة مشكلة مماثلة في الملصقات المخصصة ، على الرغم من أنني كنت أستخدم طريقة برمجية لإنشاء الرسم البياني على Div .... آمل أن يساعد هذا شخصًا ما ....
var mytooltip = new dojox.charting.action2d.Tooltip(mychart,"default",
{text: function(e) {
var tooltiptext = <construct ur custom label here>
return tooltiptext;
}
});
mychart
هو المتغير الذي استخدمته لإنشاء عنصر واجهة المستخدم ...