2012-04-19 4 views
0

Я искал все и не могу найти ответ.MVC3 WebGrid Row Select checkbox

У меня есть проект MVC3 с WebGrid на нем. Первый столбец - это Select, который в настоящее время использует обычный элемент item.GetSelectLink для создания ссылки для выбора этой строки.

Я хочу, чтобы это был флажок вместо теста «Выбрать». Когда пользователь обращается к флажку, я хочу, чтобы эта строка в сетке была выбрана, и окно стало «проверено».

Я хотел бы, чтобы проверенные и непроверенные состояния были изображениями, которые я предоставляю.

Как это сделать?

ответ

0

Если вы ничего не делаете с Ajax, ссылка «select» обновляет страницу с помощью «Selected = index», добавленной в строку запроса. Это будет необычный опыт, потому что люди не используются для флажков, запускающих перезагрузку страницы.

Вы можете сделать что-то подобное, что полностью имитирует функциональность ссылок «Выбрать». Сначала добавьте флажок в строке:

grid.Column(
    format: (item) => @Html.Raw("<input class='select' type='checkbox'" + ((grid.SelectedRow == item) ? "checked" : "") + " />") 
) 

Затем добавить Javascript обрабатывать флажок щелкает:

var index = 1; 
$("input.select").each(function() { 
    $(this).data('row', index); 
    $(this).click(function() { window.location = "?Selected=" + $(this).data('row'); }); 
    index++; 
}); 
+0

Спасибо за ответ и большой код. – user856232

+0

Ooops, нажмите enter, и он сохранил его. Я хочу написать больше .... Спасибо за код, но я действительно нуждаюсь в нем, чтобы обновить страницу. Это даже не обязательно быть флажком. Это может быть кнопка. У меня есть определенная графика, которая выглядит как флажок, который я собираюсь использовать. У вас есть код, который позволит мне поставить кнопку состояния 2 ... одно состояние для того, когда выбрана строка, а другая - когда нет, и когда вы нажимаете на нее, когда она обновляет страницу с помощью параметра SelectedRow = X querystring? – user856232

+0

@ user856232 Да, я думаю, вы можете использовать выше для этого. Просто замените type = 'checkbox' на type = 'image', а затем установите 'src', как 'checked', установлен выше (в зависимости от того, является ли gridlSelectedRow == item). – McGarnagle

Смежные вопросы