0
我搜索了所有,似乎無法找到答案。MVC3 WebGrid行選擇複選框
我有一個WebGrid上的MVC3項目。第一列是一個Select,它當前使用普通的item.GetSelectLink來創建一個鏈接來選擇該行。
我想這是一個複選框,而不是測試「選擇」。當用戶點擊複選框時,我希望選中網格中的那一行,並選中該框。
我想選中和未選中狀態爲我提供的圖像。
我該怎麼做?
我搜索了所有,似乎無法找到答案。MVC3 WebGrid行選擇複選框
我有一個WebGrid上的MVC3項目。第一列是一個Select,它當前使用普通的item.GetSelectLink來創建一個鏈接來選擇該行。
我想這是一個複選框,而不是測試「選擇」。當用戶點擊複選框時,我希望選中網格中的那一行,並選中該框。
我想選中和未選中狀態爲我提供的圖像。
我該怎麼做?
除非您使用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++;
});
謝謝你的回覆,偉大的代碼。 – user856232 2012-04-20 02:32:24
Ooops,點擊回車並保存。意思是寫更多....感謝你的代碼,但我實際上需要它來做頁面刷新。它甚至不必真的是一個複選框。它可能是一個按鈕。我有一個特殊的圖形,看起來有點像我打算使用的複選框。你是否有一些代碼可以讓我在那裏放置一個2狀態按鈕......一個狀態用於選擇行時的狀態,另一個狀態用於不當的狀態,當你點擊它時,用SelectedRow = X查詢字符串? – user856232 2012-04-20 02:34:02
@ user856232是的,我認爲你也可以使用上述。只需將type ='checkbox'替換爲type ='image',然後設置'src'就像上面設置的'checked'一樣(取決於gridlSelectedRow == item)。 – McGarnagle 2012-04-20 07:00:55