1

以下の問題を解決するためにここで私を助けてください。

コード:

<%for(int ind=0;ind<15;ind++){%>

 <tr>
   <struts-el:select name="OpEnh01pagSincomModelMaintanenceFormBean" property="mdlCode" styleId="mdlDrpDown_+'<%=ind %>'" onchange="modelCodeChanged(this.id)">
     <struts-el:options collection="listmodelCodes" property="modelCode" labelProperty="modelCodeDesc" />
   </struts-el:select> 
 </tr>

<%}%>

1) 15 行に 15 個のドロップダウンが必要です。JavaScriptで変更されたドロップダウンを特定するために、ドロップダウンのインデックスが必要です。

2) onChangeEvent によって呼び出される JavaScript で dom を使用してアクセスできるように、一意の ID を取得したいと考えています。

フォーム Bean Name プロパティ mdlDrpDown1、mdlDrpDown2 などがあります。

この形式を試しましstyleId="mdlDrpDown_+'<%=ind %>'"たが、styleId として取得できませんでした。プロパティ属性は runTimeExpr ではありません。

4

2 に答える 2

1

の動的プロパティ名を使用してmdlCode<%=ind %>いますselect。ゲッターとセッターがフォームビーンに見つからない場合No getter method Exception will be raised、これを回避するためindex based propertiesに、(インデックスに基づいて複数の値を保持できます。インデックス値はページに表示される要素の順序になります) single properties(値を 1 つだけ保持できます)。

以下のコードを試してください。

フォームビーン:

//create getter and setter for `mdlCode` using String[], so it can hold dynamic values.

String[] mdlCode;

public String[] getMdlCode() {
   return mdlCode;
}
public void setMdlCode(String[] mdlCode) {
   this.mdlCode=mdlCode;
}

JSP:

<%for(int ind=0;ind<15;ind++) {
    String id = "mdlDrpDown_"+ind;
%>

<tr>
    <!-- change property from `property="mdlCode<%=ind %>"` to property='mdlCode' -->
    <struts-el:select name="OpEnh01pagSincomModelMaintanenceFormBean" property="mdlCode" styleId="<%=id %>" onchange="modelCodeChanged(this.id)">
        <struts-el:options collection="listmodelCodes" property="modelCode" labelProperty="modelCodeDesc" />
    </struts-el:select> 
</tr>

<%}%>
于 2015-08-27T06:54:55.157 に答える
-1

styleId の形式は、次のような ID を生成します。

id="mdlDrpDown_+'1'" 
id="mdlDrpDown_+'2'"

次のように styleId を記述する必要があります。

styleId="mdlDrpDown_<%=ind %>"

id は次のようになります。

id="mdlDrpDown_1" 
id="mdlDrpDown_2"
于 2015-08-27T05:21:24.203 に答える