2014-03-18 5 views
0

Я очень новый в C# и .NET (я из Java), и у меня есть некоторые сомнения относительно того, как следующий вид работы:Некоторые сомнения в .NET wGrid.Column()?

@model DataModel.MaliciousCode.SearchMalicious 
@{ 
    ViewBag.Title = "Index"; 
    Layout = "~/Views/Shared/MasterPageMobile.cshtml"; 

    WebGrid wGrid = new WebGrid(null, rowsPerPage: Model.PageSize, defaultSort: "Published", canPage: false); 
    wGrid.Bind(Model.MaliciousCode, rowCount: Model.TotalRows, autoSortAndPage: false); 

} 

<h2>Index Andrea</h2> 

@using (Html.BeginForm("Index", "Malicious", FormMethod.Post, new { id = "MyForm" })) 
{ 

    <div class="ui-field-contain"> 
     <label for="Filter_Title">Title:</label> 
     <input type ="text" data-mini="true" data-clear-btn="true" id="Filter_Title" name="Filter.Title" value="@Model.Filter.Title" /> 
    </div> 

    <div data-role="controlgrup" data-type="horizontal" data-mini="true"> 
     <input type="reset" data-inline="true" data-mini="true" value="Reset" /> 
     <input type="submit" data-inline="true" data-mini="true" value="Seach" data-icon="search" /> 
    </div> 
} 


pageSize : @Model.PageSize 

@if (Model.TotalRows == 0) 
{ 
    <h3>Non è stata trovata nessuna vulnerabilità. Modificare i filtri di ricerca.</h3> 
} 
else 
{ 


    <div style="margin-top: 20px;"> 
     <p>TABELLA</p> 
     @wGrid.GetHtml(
      fillEmptyRows: false, 
      tableStyle: "MyTable ui-responsive", 
      headerStyle: "ui-bar-b", 
      footerStyle: "ui-bar-b", 
      rowStyle: "ui-bar-a", 
      alternatingRowStyle: "ui-bar-c", 
      htmlAttributes: new { data_role = "table", id = "MyWebGrid", data_mode = "reflow" }, 
      columns: new[]{ 

        wGrid.Column ("Title", "Title", canSort : true), 
        wGrid.Column ("Discovered", "Discovered", format: p=>p.Discovered.ToShortDateString() ,canSort : true), 

      }) 

     @{Html.RenderPartial("Paging", Model);} 
    </div> 
} 

Как вы можете видеть в этом представлении у меня есть таблицы, которые показывают объекты, которые находятся внутри коллекции (что я думаю, в моей модели объекта, это trye?), это один:

@wGrid.GetHtml(
     fillEmptyRows: false, 
     tableStyle: "MyTable ui-responsive", 
     headerStyle: "ui-bar-b", 
     footerStyle: "ui-bar-b", 
     rowStyle: "ui-bar-a", 
     alternatingRowStyle: "ui-bar-c", 
     htmlAttributes: new { data_role = "table", id = "MyWebGrid", data_mode = "reflow" }, 
     columns: new[]{ 

       wGrid.Column ("Title", "Title", canSort : true), 
       wGrid.Column ("Discovered", "Discovered", format: p=>p.Discovered.ToShortDateString() ,canSort : true), 

     }) 

мои сомнения:

  1. В этой строке, что именно представляют собой 2 строки: «Названия» и «Название» передаются в качестве параметров wGrid.Coumn() метода ?

    wGrid.Column ("Название", "Заголовок", canSort: истинно),

  2. Во второй колонке у меня есть еще один параметр:

    wGrid.Column ("Обнаруженный", «Обнаруженный », формат: р => p.Discovered.ToShortDateString(), canSort: правда),

Что именно представляют собой формат: р => p.Discovered.ToShortDateString() и что является р объект ?

Tnx

ответ

3
  1. Я надеюсь, что вы используете Visual Studio. Он покажет вам описание метода столбца с его параметрами, нажав Ctr + Space после

    webGrid.Column(
    

    Но вы найдете описание, а также в MSDN. Как вы можете видеть, первым параметром является имя столбца, второй - заголовок столбца.

  2. Это Lamda Expression. В этом контексте p является объектом любой «строки», к которой привязан WebGrid.

+0

Tnx так много, теперь все более ясно – AndreaNobili