2012-10-17 33 views

回答

3

有沒有像OnItemDataBound事件的任何事件?

不,沒有像ASP.NET MVC中的事件這樣的概念。

您可以使用自定義格式列。

型號:

public class PersonViewModel 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
    public string Address { get; set; } 
    public int Age { get; set; } 
} 

控制器:

public class HomeController : Controller 
{ 
    public ActionResult Index() 
    { 
     var persons = new[] 
     { 
      new PersonViewModel { Id = 1, Name = "u 1", Address = "a 1", Age = 54 }, 
      new PersonViewModel { Id = 2, Name = "u 2", Address = "a 2", Age = 55 }, 
      new PersonViewModel { Id = 3, Name = "u 3", Address = "a 3", Age = 56 }, 
     }; 
     return View(persons); 
    } 
} 

查看:

@model IEnumerable<PersonViewModel> 
@{ 
    var grid = new WebGrid(Model); 
} 

@grid.GetHtml(
    columns: grid.Columns(
     grid.Column("Name"), 
     grid.Column("Address"), 
     grid.Column("Age"), 
     grid.Column(
      header: "Edit", 
      format: 
       @<text> 
       @if (item.Age < 56) 
       { 
        @Html.ActionLink("Edit", "Edit", new { id = (int)item.Id }) 
       } 
       </text> 
     ) 
    ) 
) 

很明顯的事實,你有隱藏鏈接不會負擔減輕你在內對年齡進行同樣的檢查給予人員ID的控制器操作。沒有任何東西阻止用戶直接在瀏覽器地址欄中輸入此編輯操作的URL。