【发布时间】:2014-12-16 15:37:27
【问题描述】:
我想一次获取在 Devexpress MVC GridView 上选择的行。不是在每个点击的项目上。
【问题讨论】:
我想一次获取在 Devexpress MVC GridView 上选择的行。不是在每个点击的项目上。
【问题讨论】:
参考:How to get all GridView selected keys and pass them to a Controller
您可以在客户端收集所有选定的值(例如,键) 通过ASPxClientGridView.GetSelectedFieldValues 方法和 将它们传递给:
- 通过 e.customArgs 字典 (Passing Values to Controller Action Through Callbacks) 的 GridView 回调操作;
- 任何控制器都通过隐藏的输入元素发布操作。
示例代码sn-p:
<script type="text/javascript">
var selectedIDs;
function OnBeginCallback(s, e) {
//Pass all selected keys to GridView callback action
e.customArgs["selectedIDs"] = selectedIDs;
}
function OnSelectionChanged(s, e) {
s.GetSelectedFieldValues("PersonID", GetSelectedFieldValuesCallback);
}
function GetSelectedFieldValuesCallback(values) {
//Capture all selected keys
selectedIDs = "";
for (var index = 0; index < values.length; index++) {
selectedIDs += values[index] + ",";
}
if (selectedIDs.length > 0)
selectedIDs = selectedIDs.substring(0, selectedIDs.length - 1);
}
function OnClick(s, e) {
//Show all selected keys on client side
alert(selectedIDs);
}
function OnSubmitClick(s, e) {
//Write all selected keys to hidden input. Pass them on post action.
$("#selectedIDsHF").val(selectedIDs);
}
</script>
控制器
namespace Sample.Controllers {
public class HomeController : Controller {
PersonsList list = new PersonsList();
[HttpGet]
public ActionResult Index() {
return View(list.GetPersons());
}
[HttpPost]
public ActionResult Index(string selectedIDsHF) {
//Get all selected keys from hidden input
string _selectedIDs = selectedIDsHF;
return View(list.GetPersons());
}
public ActionResult GridViewEditingPartial() {
//Get all selected keys from e.customArgs on GridView callback
string _selectedIDs = Request.Params["selectedIDs"];
ViewData["_selectedIDs"] = _selectedIDs;
return PartialView(list.GetPersons());
}
}
}
注意:客户端GetSelectedKeysOnPage Method返回当前页面中显示的选定行的键值。
参考:
GridView - How to get selected rows as an action parameter
GridView - How to get values of selected rows in the Controller's Action
How do I get my selected GridView rows into a Javascript variable?
DevExpress MVC GridView - How to get cell click event
How to highlight a particular row in a page of a DevExpress MVC GridView?
【讨论】: