2012-05-08 27 views
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

這是可能的這種方式。在網格設置必須保存電網狀態:

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」]