私はこれがそれぞれが来る段階と関係があることを知っています。ui:同じクライアントIDを使用して繰り返します。 c:foreachはうまく動作します
これを行うとします。
<ui:repeat id="repeatChart" varStatus="loop" value="#{viewLines.jflotChartList}" var="jflotChart">
<p:panel>
<jflot:chart height="300" width="925" dataModel="#{jflotChart.dataSet}" dataModel2="#{jflotChart.dataSet2}"
xmin="#{jflotChart.startDateString}"
xmax="#{jflotChart.endDateString}"
shadeAreaStart ="#{jflotChart.shadeAreaStart}"
shadeAreaEnd ="#{jflotChart.shadeAreaEnd}"
lineMark="#{jflotChart.wrapSpec.benchmark}" yMin="#{jflotChart.yMin}" yMax="#{jflotChart.yMax}" />
</p:panel>
<br />
</ui:repeat>
私のコードは機能しません。 javascriptをデバッグすると、すべての反復で同じIDが生成されます。 loop.indexを入れてIDを作成しようとしましたが、idを空白にすることはできないというエラーが表示されます。
私は、c:forEachのui:repeatを交換すると問題なく動作します。 javascriptをデバッグすると、繰り返しごとに新しいIDが作成されます。
ここに私の裏付けコード(その一部)があります。
<div id="#{cc.id}_flot_placeholder" style="width:#{cc.attrs.width}px;height:#{cc.attrs.height}px;">
<script type="text/javascript">
//<![CDATA[
$(function() {
var placeholder = $("##{cc.id}_flot_placeholder");
var overviewPlaceholder = $("##{cc.id}_flot_overview");
javascriptが正しいdivにレンダリングできるように、IDは異なる必要があります。私はid属性を明示的に定義し、それをクライアントコードのidとして渡すことを試みました。前に言ったように、それはうまくいきません。助けてくれてありがとう。
** EDIT **
これは私の問題です。明らかにコロン文字のため、私はdivタグでclientIdを使用できません。私はjavascriptでそれを変更しましたが、どのようにdivにその値を取得しますか? idを生成する必要があるため、idでdivタグを取得できません。私はdocument.write()のどちらかと思われません。私はこの時点で立ち往生しています。
<composite:implementation>
<div id="#{cc.clientId}_flot_placeholder" style="width:400px;height:400px;">
<script type="text/javascript">
//<![CDATA[
$(function() {
var clientIdOld = '#{cc.clientId}';
var clientId = clientIdOld.replace(':', '_');
var placeholder = $('#'+clientId+'_flot_placeholder');
var overviewPlaceholder = $('#'+clientId+'_flot_overview');
あなたの問題少し紛らわしいです。 *同じ* id *何*?あなたは ''にしかありませんが、この属性は ''ではまったくサポートされていません。バッキングコードは複合コンポーネントのようです。それは ''ですか? –
BalusC
複合コンポーネントでは、別個のプレースホルダー変数としてidを使用します。このプレースホルダ(div)は、flot(charting library)がグラフを表示するために使用するものです。私がc:forEachを使用すると、生成されたIDは、ループごとにjdt:78、jdt:79などのようになります。私がuiを使用する場合:繰り返しidは同じです。 jdt:78、jdt:78、jdt:78。だから5,6回同じIDのdivがあります。 –
ああ。私はそれが ''の多くの問題の1つであるのではないかと心配しています。 http://java.net/jira/secure/QuickSearch.jspa?searchString=ui:repeatどのJSF impl/versionですか? –
BalusC