2013-08-24 2 views
0

Я использую MVC4 & Razor.Webgrid select row без использования SelectLink

В моем файле cshtml у меня есть Webgrid. Как выбрать строку без использования selectLink или флажка или кнопки Radio?

Сценарий, который я пытаюсь достичь здесь -

В WebGrid, чтобы отобразить столбец с данными, а затем выбрать одну единственную строку БЕЗ ИСПОЛЬЗОВАНИЯ selectLink или что-то подобное. И на основе этого выбора отправьте это значение в контроллер.

касается того, что я пытался до сих пор ... я следовал учебник из этих ссылок ниже - Example 1 Example 2

Оба эти примеры хороши, но они оба используют SelectLink подход. Может ли кто-нибудь привести пример?

+0

Как вы хотите, чтобы строка будет выбран затем? Просто щелкнув по самой строке или? – asymptoticFault

ответ

0

Вместо того, чтобы использовать собственную функциональность WebGrid в вы могли бы просто использовать некоторые JQuery, чтобы вызвать ряд выбора при нажатии в любом месте строки следующим образом:

$(function() { 

    // this selector should target the WebGrid table, with an id or class that is 
    // set on the table 
    $('table > body > tr').click(function() { 

     // this will depend on how you action and routes are set up but this will 
     // work for the default route of "{controller}/{action}/{id}" 
     // also this will simply redirect to the URL with the selected row value, 
     // if your intention is to stay on the page consider using jQuery's ajax 
     // methods (i.e. .load(), $.get(), $.post() or $.ajax()) 
     $(location).attr('href', @Url.Action("YourAction", "YourController") + '/' + /* get row value */) 

    }); 

}); 
+0

Эй, спасибо за ответ. Я новичок в JQuery. Не могли бы вы объяснить, что означает эта часть? $ ('table> body> tr') Я понимаю, что функция click вызывается однажды пользователь щелкает внутри строки. Я не понял этого ('table> body> tr') ... Еще раз спасибо. Я очень ценю это. – Abb

+0

Этот кусок называется селектором jQuery http://api.jquery.com/category/selectors/ Они в основном следуют правилам селекторов CSS. Синтаксис '$ (table> tbody> tr)' создает объект jQuery из выбранных элементов, в этом случае все элементы 'tr', которые являются дочерними элементами' body', которые в свою очередь являются дочерним элементом 'table' элемент. – asymptoticFault