カスタムポートレットを開発していますが、ビューページの1つでヘルプが必要です。
以下は、すべての行にチェックボックスがあり、各行が実行時に(動的に)作成されるフォームです。
<form method="post" name="editform">
<table class="table table-bordered table-striped" id="dt_gal_res">
<thead>
<tr>
<th class="table_checkbox"><input type="checkbox"
name="select_rows" class="select_rows"
data-tableid="dt_gal_rest" /></th>
<th>Name</th>
<th>Contact Person</th>
<th>Website</th>
<th>EDIT</th>
<th>DELETE</th>
</tr>
</thead>
<%
List<restaurant> rest_listOBJ = restaurantLocalServiceUtil.getAllAvailableRestaurant();
for (int i = 0; i < (rest_listOBJ.size()); i++) {
restaurant temprest = rest_listOBJ.get(i);
%>
<tbody>
<tr>
<td><input type="checkbox" name="row_sel" class="row_sel" /></td>
<td><%=temprest.getName() %></td>
<td><%=temprest.getContactno() %></td>
<td><%=temprest.getWebsite() %></td>
<td>
<input type="submit" id="1" value="edit"
onclick="return getbuttonId('<%=temprest.getPrimaryKey() %>')" />
</td>
<td>
<input type="submit" id="2" value="DELETE"
onclick="return getdeletebuttonId('<%=temprest.getPrimaryKey() %>')" />
</td>
</tr>
</tbody>
<%
}
%>
</table>
<div style="visibility: hidden;">
<input type="hidden" name="hide1" id="hiddenkey" value="">
</div>
</form>
現在、削除ボタンがあり、他のロジックによって行を1つずつ削除しています。
しかし、今私が欲しいのは、行のチェックボックスを選択した後、1つのボタンを送信するときに1つ以上のチェックボックスを選択し、その1つのボタンをクリックすると、チェックボックスが選択されているすべての行を削除したいということです。
どういうわけか、ポートレットクラスのアクションメソッドで選択したチェックボックスリストのリストを取得する方法を誰かに教えてもらえれば、それでも十分です。
私はjspを初めて使用するので、何かアイデアがあれば教えてください。
u guyzが提案したように、私は同じ方法を実行しましたが、成功しませんでした。ここで間違っているのは私のアクションクラスです。
public void deleteMultipleRestaurant(ActionRequest ar, ActionResponse ap)
throws Exception {
log.info("ENTERED");
List<restaurant> restaurants = restaurantLocalServiceUtil.getAllAvailableRestaurant();
for (restaurant restaurantitem : restaurants) {
if (Boolean.valueOf(ar.getParameter("row_sel" + restaurantitem.getPrimaryKey()))) {
// This is a selected checkbox so add you remove code here
log.info(restaurantitem);
restaurantitem.setIsdeleted(true);
restaurantLocalServiceUtil.updaterestaurant(restaurantitem);
}
}
}
私のビューファイルでは次のようにしています
これは私のulの1つですこれは私の削除リンクがあります
<portlet:actionURL name="deleteMultipleRestaurant"
var="multideleteURL">
</portlet:actionURL>
<button data-toggle="dropdown" class="btn dropdown-toggle">
Action <span class="caret"></span>
</button>
<ul class="dropdown-menu">
<li><aui:button name="DELETE" value="DELETE" onClick="<%=multideleteURL.toString() %>"/></li>
<li><a href="javascript:void(0)">Lorem ipsum</a></li>
<li><a href="javascript:void(0)">Lorem ipsum</a></li>
</ul>
以下は表示ページです
<tbody>
<%
List<restaurant> rest_listOBJ = restaurantLocalServiceUtil
.getAllAvailableRestaurant();
for (int i = 0; i < (rest_listOBJ.size()); i++) {
restaurant temprest = rest_listOBJ.get(i);
%>
<tr>
<td><input type="checkbox" id="row_sel<%= temprest.getPrimaryKey() %>" name="<portlet:namespace/>row_sel<%= temprest.getPrimaryKey() %>" class="row_sel" />
</td>
<td><%=temprest.getName()%></td>
<td><%=temprest.getContactno()%></td>
<td><%=temprest.getWebsite()%></td>
<td><input type="button" id="1"
onclick="return getbuttonId('<%=temprest.getPrimaryKey()%>')"
style="border:none;width:20px" class="icon-pencil"/>
<input type="button" id="2"
onclick="return getdeletebuttonId('<%=temprest.getPrimaryKey()%>')"
style="border:none;width:20px" class="icon-trash" /></td>
</tr>
<%
}
%>
</tbody>
しかし、何も得られていません。ページをリロードするだけです。