2011-06-06 48 views
1

webgrid很容易使用,但在mvc3中參數太多,每頁需要設置的參數太可怕了, 有什麼方法可以修復模板中的幾個參數,例如修復:如何在mvc3中自定義webgrid模板或類似的功能!

    tableStyle: "webgrid-table" 
       , headerStyle: "webgrid-header" 
       , alternatingRowStyle: "alt" 
       , selectedRowStyle: "" 
       , displayHeader: true 
       , numericLinksCount: 10 
       , footerStyle: "paging-number" 
       , rowStyle: "webgrid-row" 

和公共列刪除,添加,編輯

grid.Column(格式:(項目)=> Html.ActionLink(」「 , 」添加「 ,空 ,新{@ class =「webgrid-add」,title =「a (格式:(item)=> Html.ActionLink(「」 ,「編輯」 ,null ,new {id = (格式:(item)= 0)} ,new {@class =「webgrid-edit」,title =「edit row」,onclick =「return gridop(this);」})) ,grid.Column > Html.ActionLink(「」 ,「del」 ,null ,new {id = item [0]} ,new {@class =「webgrid-del」,title =「delete row」,onclick =「return gridop(this);「}))

如果在代碼之前完成,當我們讀取y顯示webgrid,只能編碼「showgrid(Model); 「頁面;


gridmodel.cshtml

@model IEnumerable的 @ {VAR 格=新的WebGrid(型號,rowsPerPage:10);

if (ViewData.TemplateInfo.TemplateDepth > 1) 
{ 
@ViewData.ModelMetadata.SimpleDisplayText; 
} 
else 
{ 

    List<WebGridColumn> columns = new List<WebGridColumn>(); 
    columns.Add(grid.Column(format: (item) => Html.ActionLink(" " 
        , "add" 
        , null 
        , new { @class = "webgrid-add", title = " 添加新記錄!", onclick = "return gridop(this);" }))); 

    columns.Add(grid.Column(format: (item) => Html.ActionLink(" " 
          , "edit" 
          , null 
         , new { @class = "webgrid-edit", title = " 編輯本行記錄信息!", onclick = "return gridop(this);" }))); 
    columns.Add(grid.Column(format: (item) => Html.ActionLink(" " 
          , "del" 
          , null 
          , new {id = item[1] } 
           , new { @class = "webgrid-del", title = " 刪除本行記錄信息!", onclick = "return gridop(this);" })));                  



        if (ViewData.TemplateInfo.TemplateDepth > 1) 
{ 
@ViewData.ModelMetadata.SimpleDisplayText; 
} 
        else 
        { 

         foreach (var item in ViewData.ModelMetadata.Properties.Where(pm => pm.ShowForEdit && 
                             !ViewData.TemplateInfo.Visited(pm))) 
         { 

          if (!item.HideSurroundingHtml) 
          { 
           columns.add(new WebGridColumn { ColumnName = item.PropertyName, Header = item.DisplayName }); 
          } 

         } 
        } 

    var a = grid.GetHtml(tableStyle: "webgrid-table" 
       , headerStyle: "webgrid-header" 
       , alternatingRowStyle: "alt" 
       , selectedRowStyle: "" 
       , displayHeader: true 
       , caption: "aaaaaaaaaaaaaaaa" 
       , numericLinksCount: 10 
       , footerStyle: "paging-number" 
       , rowStyle: "webgrid-row" 
       , columns: grid.Columns(columns.ToArray() 


       ) 
       ); 

    @Html.Raw(a.ToString()); 
      } 

} 

以上是我的代碼,但ViewData.ModelMetadata.Properties爲null,無法檢索item.PropertyName, item.DisplayName。我不知道爲什麼! 請幫幫我!

回答

0

請嘗試使用optional, named parameters。我的意思是,在你的控制中定義相同的默認值。這個控件應該是HtmlHelper類的擴展方法。因此,你可以從您的視圖(S):

@ Html.MyGrid(型號)

我通常創建用於該目的的/助手文件夾。

希望這會有所幫助,