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>
しかし、このコードは最初のセルの値を取得し、それをリンクで使用しています。webgrid に表示されていない別の値を送信したいと考えています。この場合、「messageGuiD」という名前のメッセージごとに生成された GUID です。
「td:first」を messageGuiD に置き換えてみましたが、コンマ、ピリオド、コロンなどをジャグリングして機能させましたが、成功しませんでした。最も近いのは、messageGuiD フィールドを webgrid の一部にし、スタイリングを使用して作成することでした。非表示 (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&sortdir=ASC">From</a> </th>
<th scope="col">
<a data-swhglnk="true" href="/Messages/Inbox?sort=messageSubject&sortdir=ASC">Subject</a> </th>
<th scope="col">
<a data-swhglnk="true" href="/Messages/Inbox?sort=DateSent&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 になります。
1 つの方法は、最初の列に messageGuiD を表示し、リンクを Messages/Reply/msg-c75b7310-3708-42b2-bb6a-084ac97dd63c にすることです (これは私が望むものです)。 .
とにかく、この質問は十分に長く続いています。誰かがJavaScriptにデータベースから値を読み取らせる複雑でない方法を知っているなら、それは素晴らしいことです。行全体を選択できるようにする方がはるかにきれいです。御時間ありがとうございます。