【问题标题】:MVC3 WebGrid: Can htmlAttributes be used on rows/columns?MVC3 WebGrid:可以在行/列上使用 htmlAttributes 吗?
【发布时间】:2011-12-15 11:54:53
【问题描述】:

我正在使用 WebGrid 在 MVC3 中创建分页/可排序列表。我创建了一个启用 AJAX 的删除按钮,该按钮通过 AJAX 进行删除调用,之后我希望它从表中删除该行。

我想实现这一点的方法是在表中的<tr> 上添加一个iddata-id 属性,以便我可以使用jQuery 轻松操作它。但是,我不知道如何在使用 WebGrid 时向行添加属性。

我知道属性可以像这样在网格级别轻松设置:
@grid.GetHtml(htmlAttributes: new { id = "gridMapping", style = "width:100%;" },

但是我不知道如何在行/列级别实现相同的目标。

【问题讨论】:

  • 有没有为此想出一些好东西?
  • @Maslow 我现在不记得我的最终解决方案了,但它不是很好 - 它有效,但并不优雅

标签: asp.net-mvc-3 razor webgrid


【解决方案1】:
@grid.GetHtml(
    columns: grid.Columns(
        grid.Column(format: (item) => Html.CheckBox("SelectedInvoice",new { value=item.transactionId})),
   //// rest of your columns here
     )
 )

因此,一种方法是放置一个可以处理您的 htmlAttributes 的 HTML 辅助方法。 其他方式 - 使用 format: 和 Html.Raw 的组合 最后一个,但可能是最简单的:javascript (jQuery)

所以你可以尝试类似的东西:

 $('#grid tr').each(function(){
     $(this).attr('yourhtmlattribute','value');
 });

对于 TD 也采用类似的方式。

【讨论】:

    【解决方案2】:

    我是这样实现的

    在您的 webgrid 设置中,将此添加到其中一个列中。

    grid.Column("UserName", "User Name", format: @<text><span data-id='@item.Id'>@item.UserName</span></text>, canSort: true),
    

    不,当 HTML 网格被渲染时,你会得到这个。

    <tr jQuery45435434="3"> <span data-userid="1">Fred Smith</span></tr>
    <tr jQuery45435434="4"> <span data-userid="2">Sally Smith</span></tr>
    <tr jQuery45435434="5"> <span data-userid="3">Joe Smith</span></tr>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-26
      • 1970-01-01
      • 1970-01-01
      • 2012-09-18
      • 1970-01-01
      • 2011-12-07
      • 2013-07-11
      • 2011-11-09
      相关资源
      最近更新 更多