1

Devexpress MVC GridView で選択した行を一度に取得したい。クリックされた各アイテムではありません。

4

1 に答える 1

4

参考: GridViewで選択したキーをすべて取得してコントローラーに渡す方法

ASPxClientGridView.GetSelectedFieldValuesメソッドを使用して、クライアント側で選択されたすべての値 (キーなど) を収集し、次のように渡すことができます。

  • e.customArgs ディクショナリを介した GridView コールバック アクション (コールバックを介してコントローラー アクションに値を渡す)。
  • 非表示の入力要素を介した任意のコントローラー ポスト アクション。

コード スニペットの例:

<script type="text/javascript">
    var selectedIDs;
    function OnBeginCallback(s, e) {
        //Pass all selected keys to GridView callback action
        e.customArgs["selectedIDs"] = selectedIDs;
    }
    function OnSelectionChanged(s, e) {
        s.GetSelectedFieldValues("PersonID", GetSelectedFieldValuesCallback);
    }
    function GetSelectedFieldValuesCallback(values) {
        //Capture all selected keys
        selectedIDs = "";
        for (var index = 0; index < values.length; index++) {
            selectedIDs += values[index] + ",";
        }
        if (selectedIDs.length > 0)
            selectedIDs = selectedIDs.substring(0, selectedIDs.length - 1);
    }
    function OnClick(s, e) {
        //Show all selected keys on client side
        alert(selectedIDs);
    }
    function OnSubmitClick(s, e) {
        //Write all selected keys to hidden input. Pass them on post action.
        $("#selectedIDsHF").val(selectedIDs);
    }
</script>

コントローラ

namespace Sample.Controllers {
    public class HomeController : Controller {
        PersonsList list = new PersonsList();

        [HttpGet]
        public ActionResult Index() {
            return View(list.GetPersons());
        }

        [HttpPost]
        public ActionResult Index(string selectedIDsHF) {
            //Get all selected keys from hidden input
            string _selectedIDs = selectedIDsHF;

            return View(list.GetPersons());
        }

        public ActionResult GridViewEditingPartial() {
            //Get all selected keys from e.customArgs on GridView callback
            string _selectedIDs = Request.Params["selectedIDs"];
            ViewData["_selectedIDs"] = _selectedIDs;

            return PartialView(list.GetPersons());
        }

    }
}

注: クライアント側のGetSelectedKeysOnPage メソッドは、現在のページ内に表示されている選択された行のキー値を返します。

参照:
GridView - 選択した行をアクション パラメーターとして取得する
方法 GridView - コントローラーのアクションで選択した行の値を取得する
方法 選択した GridView の行を Javascript 変数に取得するにはどうすればよいですか?
DevExpress MVC GridView - セル クリック イベントを取得する方法 DevExpress MVC GridView
のページで特定の行を強調表示する方法は?

于 2014-10-22T04:12:15.333 に答える