Как мне получить ручку к моей диаграмме додзё, чтобы изменить её размер?

1

У меня есть диаграмма 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);
  • 0
    Исходя из аналогичного вопроса здесь, на SO ( stackoverflow.com/questions/4610920/… ), это должно работать. Вы удостоверились, что, по крайней мере, DOM-узел, для которого вы создали диаграмму, существует dojo.byId("#{id:panelSimpleChart}") ? Вычисленный идентификатор мог бы измениться, если бы вы выполнили частичное обновление одного из родительских элементов ...
  • 0
    Исходный код страницы показывает, что он есть div id = "view: _id1: CompXPage: _id171: repeat1: 0: _id778: panelSimpleChart"
Показать ещё 11 комментариев
Теги:
xpages
dojox.charting

1 ответ

1

РЕШЕННО Спасибо вам, мистер xpages-noob, за ответ на мой призыв о помощи и за вашу экспертную оценку. Я решил отобразить диаграмму ПОСЛЕ того, как отображалась панель, и таким образом избежать проблемы с изменением размера. Итак, я скопировал мою функцию макета из своего пользовательского элемента управления и поместил ее в свою кнопку на моей странице - внутри моей панели. После отображения панели пользователь должен выбрать, какую диаграмму отобразить (выбор из 4), поэтому в событии onComplete моих переключателей я вызываю новую кнопку Render для создания диаграммы. Это прекрасно работает. Еще раз спасибо за ваше терпение.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню