アイテムのリストがあり、チェックボックスのリストでチェックされているアイテムを削除したい。
_Grid.Mvc
_を使用して行を表示しているため、CheckboxList
のようなものは使用できません。そのため、column.add("<input type="checkbox".....>);
を使用して各行にチェックボックスを作成します。
すべてのチェックボックスには独自のIDがあります。
_<input type="checkbox" id="3">
<input type="checkbox" id="4">...
_
チェックしたすべてのチェックボックスIDをコントローラーに渡す方法を教えてください(そこから削除操作を実行します)。ボタンを1回押すだけで、フォームからチェック済みIDの配列をコントローラーアクションに投稿するにはどうすればよいですか?
生成されたHTMLの例:
<label><input type="checkbox" name="deletedItems" value="3"> Some label for 3</label>
<label><input type="checkbox" name="deletedItems" value="4"> Some label for 4</label>
...
<button type="submit">Submit</submit>
コントローラーアクション:
[HttpPost]
public ActionResult MyAction(int[] deletedItems)
{
// deletedItems contains all values that were checked
// when the submit button was clicked. Here you can
// loop through the array of IDs and delete by ID.
...
}
チェックボックスにはid
属性がないことに注意してください。モデルのバインドには使用されません。代わりに、「deletedItems」という名前のname
属性があり、これはMyAction
コントローラーアクションの引数の名前と一致します。これがモデルのバインド時に使用されます。チェックされたチェックボックスのvalue
属性は、int[]
のdeletedItems
配列を生成するために使用されます。
あなたが好きなように生成されたhtmlが欲しいなら
<label><input type="checkbox" name="deletedItems" value="3"> Some label for 3</label>
<label><input type="checkbox" name="deletedItems" value="4"> Some label for 4</label>
その後、次のコードを使用できます
<td>@Html.CheckBox("selectedItems", new { @value = @item.checkId })</td>
<td><input id="selectedItems" name="selectedItems" type="checkbox" value="11503" />
<input name="selectedItems" type="hidden" value="false" />
</td>
SelectedItemsをコントローラーに渡しません。