【问题标题】:Webgrid: Get model item on row clickWebgrid:在行单击时获取模型项
【发布时间】:2012-12-27 16:04:03
【问题描述】:

我正在尝试找到一种方法让整行都可以点击。到目前为止,我发现的教程使用表格上可见的项目为每一行创建链接。例如

$(function(){
    $('tbody tr').live('hover', function(){
        $(this).toggleClass('clickable');
    }).live('click', function(){
        location.href = '/Details/' + $(this).find('td:first').text();  
    }); 
});

这对每一行使用存储在 html 标记 td 中的模型项。但是,我希望能够使用未存储在表中但在该行表示的模型项目中的项目。我想使用一个我不想出现在桌子上的 id。

例如,假设我的 webgrid 使用包含参数 SSN、FirstName 和 Lastname 的模型。但我的 webgrid 只显示 FirstNmae 和 Lastname。我想让这些行可点击,而是使用 SSN 来构建点击链接位置。

我想包括一个隐藏列,我在其中传递 id。然而,隐藏的列确实在表格上创造了一些额外的空间,尽管它们是不可见的;我不想要这个。

我怎样才能做到这一点?单击一行时,如何在模型中获取值而不是在表格中获取值。是否可以使用 id 设置我的列之一,这将是我想用来在行单击时创建链接的模型项?

【问题讨论】:

  • 请不要将“ASP.NET MVC”简称为“MVC”。一种是框架,另一种是与语言无关的设计模式。这就像调用 IE - “互联网”

标签: jquery asp.net-mvc webgrid


【解决方案1】:

您不必显示该值,但您显然需要能够访问它,正如您似乎已经指出的那样。例如,您可以将其应用为行中元素的 id 属性值,也可以使用隐藏的表单字段。或者,如果您使用的是 HTML5 文档类型,则可以使用 custom data attributes

【讨论】:

  • 隐藏的表单域会产生一些额外的空间,尽管它们是隐藏的。我希望没有这个空间。如何将其作为 id 属性应用?我的意思是,如何指定列的 id 属性?
  • 隐藏的表单域不应影响布局。您不能将 id 属性添加到 WebGrid 列。 API 不允许。您可以将跨度添加到格式参数中的一列并为其应用 id。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-20
  • 2012-10-15
  • 2013-04-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多