Web 网格中的可单击行,带有 Razor/JavaScript

本文关键字:带有 Razor JavaScript 单击 网格 Web | 更新日期: 2023-09-27 17:57:24

使用webgrid助手,我使用了一些JavaScript来单击整行,并且工作正常,但是JavaScript中的href链接我需要合并剃刀。

JavaScript代码在这里:

<script type="text/javascript">
$(function(){
    $('tbody tr').live('hover', function(){
        $(this).toggleClass('clickable');
    }).live('click', function(){
        location.href = '/Messages/Reply/' + $(this).find('td:first').text();   
    }); 
});
</script>

但是这段代码是在第一个单元格中获取值并在链接中使用它,我想发送一个未显示在网络网格中的不同值。在本例中,为每条消息生成一个名为"messageGuiD"的 guid。

我尝试用messageGuiD替换"td:first",并处理逗号,句点,冒号和任何东西来使其工作,但没有成功。我最接近的是我将 messageGuiD 字段作为网络网格的一部分,并使用样式使其隐藏(display:none),它的工作原理是将 messageGuiD 发送到 URL,但这会使标题错位并对表格格式产生一些副作用......

webgrid 助手从数据库生成了一个表,在本例中它是一个邮件收件箱,下面是生成的 html 示例:

<table class="table" data-swhgajax="true" data-swhgcontainer="contentgrid" data- swhgcallback="addCheck">
<thead>
    <tr class="header">
        <th scope="col">
<a data-swhglnk="true" href="/Messages/Inbox?sort=FromUser&amp;sortdir=ASC">From</a>             </th>
        <th scope="col">
<a data-swhglnk="true" href="/Messages/Inbox?sort=messageSubject&amp;sortdir=ASC">Subject</a>            </th>
        <th scope="col">
<a data-swhglnk="true" href="/Messages/Inbox?sort=DateSent&amp;sortdir=ASC">Date Sent</a>            </th>
        <th scope="col">
        </th>
    </tr>
</thead>
<tbody>
    <tr class="rows">
        <td class="mfrom">benatssu</td>
        <td class="msubject"><a href="/Messages/Reply/msg-c75b7310-3708-42b2-bb6a-084ac97dd63c">hello</a></td>
        <td class="mdate">Feb 4, 2013<br>8:02 PM</td>
        <td class="mdel"><input type="checkbox" name="deleteMsg" value="msg-c75b7310-3708-42b2-bb6a-084ac97dd63c"></input></td>
    </tr>
</tbody>
</table>

用户可以通过单击链接到主题列的主题来打开他们的消息,获取 webgrid 帮助程序中使用的该链接的代码如下:

format: @<a href="~/Messages/Reply/@item.messageGuiD">@item.messageSubject</a>

JavaScript 中 td:first 的问题在于它生成了与第一个单元格中的内容的链接,在我的例子中,它是消息来自谁,并且会生成一个链接/Messages/Reply/benatssu,即使我将主题移动到第一列,链接也会变成/Messages/Reply/hello。

一种方法是将消息GuiD显示在第一列中,链接变为消息/回复/msg-c75b7310-3708-42b2-bb6a-084ac97dd63c(这是我想要的),但随后我在表中显示了一个丑陋的长数字。

无论如何,这个问题已经持续了足够长的时间,如果有人知道一种让 JavaScript 从数据库中读取值的不复杂方法,那就太棒了,如果没有,那没关系,代码使用指向主题名称的较小链接,它只是更漂亮,可以选择整行。 谢谢你的时间。

Web 网格中的可单击行,带有 Razor/JavaScript

$(this).find('td:eq(1) a').attr('href');

或者您可以使用类

 $(this).find('td.msubject a').attr('href');

使用 A 标签的 id 来存储 messageGuiD - 然后修改 jquery> $(this).find('td> a').attr('id')

格式:@@item.消息主题

想法就在这里...使用 jQuery 从

获取 attr('id')