1

私はグリッド設定でこれを持っています:

    var gridLayoutRepository = new GridLayoutRepository();

    settings.ClientLayout = (s, e) =>
    {
        Debug.Write(e.LayoutData);

        if (e.LayoutMode == ClientLayoutMode.Loading)
        {
            e.LayoutData = gridLayoutRepository.Load();
        }
        else
        {
            gridLayoutRepository.Save(e.LayoutData);
        }
    };

gridstate をデータベースに保存するための 1 つのボタンと、それをリセットするための 1 つのボタンが必要です。手伝って頂けますか?

4

1 に答える 1

1

これはこの方法で可能です。グリッド設定では、グリッドの状態を保存する必要があります:

settings.ClientLayout = (s, e) =>
    {
        if (e.LayoutMode == ClientLayoutMode.Loading)
        {
            if (Session["myGridState"] != null)
                e.LayoutData = (string)Session["myGridState"];
        }
        else
            Session["myGridState"] = e.LayoutData;
    };

次に、ボタンをクリックすると、グリッドの状態を次のように保存する必要があります。

<script type="text/javascript">
function SaveLayoutData() {
    $.getJSON("@Url.Action("SaveLayoutData", "MyController" })", null,
        function (result) {
            if(result == 'success') {
                alert("Layout save success");
            }
        });
}
</script>

コントローラーで:

    public JsonResult SaveLayoutData()
    {
       _gridStateRepository.Save(Session["myGridState"]);
       return Json("success", JsonRequestBehavior.AllowGet);
    }

グリッドをロードするときは、データベースからグリッドの状態をロードし、それを Session["myGridState"] に書き込む必要があります

于 2012-05-11T12:33:19.720 に答える