Как настроить шаблон веб-сетки или аналогичную функцию в mvc3! - PullRequest
1 голос
/ 06 июня 2011

webgrid прост в использовании, в mvc3, но параметр слишком много , каждой странице нужно установить параметр, так ужасно, Есть ли способ исправить несколько параметров в шаблонах, например, чтобы исправить:

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

и общие столбцы удалить, добавить, редактировать

grid.Column (формат: (элемент) => Html.ActionLink ("" , "добавлять" , ноль , new {@class = "webgrid-add", title = "add row", onclick = "return gridop (this);" })) , grid.Column (формат: (item) => Html.ActionLink ("" , "редактировать" , ноль , новый {id = item [0]} , new {@class = "webgrid-edit", title = "редактировать строку", onclick = "return gridop (this);" })) , grid.Column (формат: (item) => Html.ActionLink ("" , "Del" , ноль , новый {id = item [0]} , new {@class = "webgrid-del", title = "delete row", onclick = "return gridop (this);" }))

Если завершено до кода , Когда мы будем готовы показать веб-сетку , только для кодирования "showgrid (Model);" на странице;


gridmodel.cshtml

@ модель IEnumerable @ { var grid = новая WebGrid (модель, rowPerPage: 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. Я не знаю почему! Пожалуйста, помогите мне!

1 Ответ

0 голосов
/ 04 июля 2011

Попробуйте использовать необязательные, именованные параметры .Я имею в виду, определить те же значения по умолчанию в вашем элементе управления.Этот элемент управления должен быть методом расширения класса HtmlHelper.Таким образом, вы можете сделать из своих просмотров:

@Html.MyGrid (Model)

Я обычно создаю для этого папку / Helpers.

Надеюсь, это поможет

...