使用 Telerik Extensions for ASP.NET MVC,我创建了以下网格:
..当用户选择分组订单中的任何项目时,我可以使用客户端事件“OnRowSelect”提取我的订单号的值。然后,我可以在警报中显示所选值,但我真正想做的是将该值传递回不同的控制器操作。这可能使用javascript吗?
当我尝试服务器端控件时,我最终在每个详细信息行旁边都有按钮,这不是所需的效果/外观。
使用 Telerik Extensions for ASP.NET MVC,我创建了以下网格:
..当用户选择分组订单中的任何项目时,我可以使用客户端事件“OnRowSelect”提取我的订单号的值。然后,我可以在警报中显示所选值,但我真正想做的是将该值传递回不同的控制器操作。这可能使用javascript吗?
当我尝试服务器端控件时,我最终在每个详细信息行旁边都有按钮,这不是所需的效果/外观。
您可以轻松地在该事件中进行 ajax 调用。一种两部分过程(假设您的事件处理程序驻留在单独的 .js 文件中 - 否则您可以直接在 .ajax 调用中定义一个 url)。在 $(document).ready(...) 中定义您需要发布的网址,例如:
<script type="text/javascript">
$(document).ready(function() {
var yourUrl = '@Url.Action("Action", "Controller")';
});
然后在您的 OnRowSelect 事件处理程序中放置如下内容:
function onRowSelect(e) {
var row = e.row;
var orderId = e.row.cells[0].innerHTML;
$.ajax(
{
type: "POST",
url: yourUrl,
data: {id: orderId},
success: function (result) {
//do something
},
error: function (req, status, error) {
//dosomething
}
});
}
那应该这样做。
事实证明,通过简单地更改 Window.location 来访问新页面是一种更简单的方法,如下所示:
var yourUrl = '@Url.Action("Action", "Controller")';
var orderID;
function onRowSelected(e) {
var ordersrid = $('#IncompleteOrders').data('tGrid');
orderID = e.row.cells[1].innerHTML;
window.location = yourUrl + "?orderId=" + orderID;
}
感谢那些回复的人;但是,Telerik 的 Daniel 提供的上述答案更多的是我想要的。