У меня есть диаграмма dojo, которая содержится в скрытой панели. Естественно, когда страница открывается, диаграмма имеет размер и высоту по умолчанию. Однако, когда я показываю панель, я хочу изменить размер диаграммы, чтобы она соответствовала панели. Я нашел выражение, chart.resize(w, h), но я не знаю, как его использовать. Как мне получить представление о самой диаграмме?
Я создаю диаграмму, используя это...
var chart3 = new dojox.charting.Chart2D("#{id:panelSimpleChart}");
но это просто говорит диаграмме, где визуализировать. На самом деле это не присвоение этого идентификатора диаграмме, правильно?
Я нашел сообщение со ссылкой на это...
var chart = dijit.byId("#{id:panelSimpleChart}");
if (chart != null ) {
chart.resize(w,h);
}
но, когда я пытаюсь использовать имя моей панели, диаграмма равна нулю.
Это, кажется, простой вопрос, но я здесь немного озадачен. Может ли кто-нибудь указать мне в правильном направлении?
Это разметка панели...
<xp:panel id="panelSeatTotals">
<xp:this.styleClass><![CDATA[#{javascript:"xspDisplayNone"}]]></xp:this.styleClass>
поэтому он отображается, но не отображается.
Здесь немного больше кода (с ненужным удаленным материалом)
<xp:repeat id="repeat1" rows="50" var="asmydata"
indexVar="asmyindex" value="#{view1}">
<xp:panel id="panelAsmyDoc">
...
<xp:table>
...
<xp:panel id="panelSeatTotals">
<xp:this.styleClass><![CDATA[#{javascript:"xspDisplayNone"}]]></xp:this.styleClass>
...
<xp:tr>
<xp:td
style="padding-left:20.0%">
<xc:chartLine_AS></xc:chartLine_AS>
</xp:td>
Это из графика cc:
<xp:panel id="panelSimpleChart"
style="width:100%; height: 400px;height:200px">
</xp:panel>
и скрипт...
makeCharts3 = function(){
//line chart
var chart3 = new dojox.charting.Chart2D("#{id:panelSimpleChart}");
...
}
XSP.addOnLoad(makeCharts3);
РЕШЕННО Спасибо вам, мистер xpages-noob, за ответ на мой призыв о помощи и за вашу экспертную оценку. Я решил отобразить диаграмму ПОСЛЕ того, как отображалась панель, и таким образом избежать проблемы с изменением размера. Итак, я скопировал мою функцию макета из своего пользовательского элемента управления и поместил ее в свою кнопку на моей странице - внутри моей панели. После отображения панели пользователь должен выбрать, какую диаграмму отобразить (выбор из 4), поэтому в событии onComplete моих переключателей я вызываю новую кнопку Render для создания диаграммы. Это прекрасно работает. Еще раз спасибо за ваше терпение.
dojo.byId("#{id:panelSimpleChart}")
? Вычисленный идентификатор мог бы измениться, если бы вы выполнили частичное обновление одного из родительских элементов ...