2012-09-01 74 views
0

我正在編輯屏幕上工作。我需要下拉菜單填充1個表中的預選值,並從另一個表中突出顯示這些值。 我能夠在調試語句中正確顯示來自不同表的兩個值。變量的默認下拉值

問題是... 當試圖在下拉列表中顯示時,預選值不僅僅選擇現有值,而是將其添加到下拉列表中。 您能告訴我我在哪裏輸入代碼的位置嗎?這一問題在下面的行:

如果(site.equals(站點名)){ %> <%= SITENAME%> <%
} %>

但什麼是這個的解決方案,任何人都可以告訴我嗎?

這是我的代碼片段。

對(INT I = 0;!站點列表= NULL & &我< siteList.size();我++){ 站點S =(站點)siteList.get(ⅰ); int siteid = s.getID()。intValue(); site = s.getSitename();

   if (site.equals(SiteName)){ 
      %> 
       <option selected="selected" > <%=SiteName%> </option> 

      <% 
       } 
      %> 
       <option value="<%=siteid%>"><%=site%> </option><% 

       } 
       }catch(Exception e){ 
       e.getMessage(); 
       } 
      %> 
     </select> 
+0

似乎它需要一個'else'在那些縮進的代碼中。 –

回答

1

你在你的代碼的else錯過了。像這樣將有助於:

<% 
    for (int i = 0; siteList != null && i < siteList.size(); i++){ 
     Site s = (Site) siteList.get(i); 
     int siteid = s.getID().intValue(); 
     site = s.getSitename(); 

     if (site.equals(SiteName)){ 
%> 
      <option selected="selected" > <%=SiteName%> </option> 
<% 
     } //end of if-statement 
     else{ 
%> 
      <option value="<%=siteid%>"><%=site%> </option> 
<% 
     } //End of else 
    } //End of for 
    }catch(Exception e){ 
    e.getMessage(); 
    } 
%> 
</select> 

注:你沒有指定你的try - 塊開始的地方,讓你的代碼中照顧那個。我只能看到catch - 塊,我假設您的try塊在您的代碼中的for -loop之前開始。

+0

謝謝,它工作。 – smiley

+1

@smiley:很高興幫助:)如果這有助於你,請考慮接受這個答案。 – Sujay