2009-06-09 5 views
0

У меня есть сетка (foreach in view), которая показана на основе запроса GET.MVC: Обновление сетки через jQuery

Для запроса POST я хочу вернуть отфильтрованный вид сетки. Сетка уже является частичным видом, поэтому просто вернуть сетку не составит труда.

Тем не менее, я ищу пример кода, как я получаю условия моего фильтра (есть несколько, я бы выбрал выбранных клиентов по выпадающим спискам) обратно на запрос POST контроллера.

Я бы очень признателен за образец кода, клиент & серверный сервер с использованием jQuery в качестве библиотеки Javascript для кода клиента.

Спасибо!

+0

Alex, вы нашли решение этой проблемы? – Picflight

+0

Я сам это понял (верхний ответ был полезен, но не совсем то, что я искал, потому что я пропустил сторону C#, которую я уже понял) не так сложно.) В основном вы определяете поле типа , и когда вы помещаете это в форму, которую затем отправляете на контроллер, вы можете поймать входные данные на стороне контроллера с помощью метода контроллера: public ActionResult MyControllerMethod (String имя). Параметр метода «firstname» метода контроллера, который вы отправляете, будет заполняться значением ввода с одинаковым именем. – Alex

ответ

2

Я пишу код следующим образом.

var url = '<%= Url.Action("List", new { controller = "ControllerName" }) %>'; 
$.post(url, 
    $("#criteria_form").serialize(), 
    function(data) { 
     $("#list_holder").html(data); 
    } 
); 
+0

Не могли бы вы объяснить свой код немного более подробно, а также показать сторону C#? Спасибо! – Alex

+0

На самом деле нет ничего более. C# просто отображает представление, которое является пользовательским элементом управления, и оно возвращается в качестве параметра данных. Критерии передаются в качестве параметров для действия. – Craig

+0

Как вы десериализируете параметры данных в действии? Смысл, как выглядит подпись: public ActionResult Filter (?????) и как вы получаете доступ к отдельным сериализованным элементам из критерия_формы? – Alex

1

C# часть будет выглядеть следующим образом, если вы используете пример Крейга, обратите внимание, что аргументы этого действия должны иметь такое же имя, как и в HTML критерии поиска формы!

[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult Edit(string searchtext) 
{ 
    // retrieve data here based on searchtext 


    //return partial view to be used in the grid 
    return View("_partial", myDataCollection) 
} 

Вы также можете посмотреть в JQuery аддонов как jqGrid или TableSorter.

+0

Спасибо за ссылки, jqGrid выглядит так же, как и то, что я искал! –