0

使用 Telerik Extensions for ASP.NET MVC,我创建了以下网格:

Telerik MVC 网格

..当用户选择分组订单中的任何项目时,我可以使用客户端事件“OnRowSelect”提取我的订单号的值。然后,我可以在警报中显示所选值,但我真正想做的是将该值传递回不同的控制器操作。这可能使用javascript吗?

当我尝试服务器端控件时,我最终在每个详细信息行旁边都有按钮,这不是所需的效果/外观。

4

2 回答 2

1

您可以轻松地在该事件中进行 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
        }
    });        
}

那应该这样做。

于 2012-08-02T16:57:07.533 回答
0

事实证明,通过简单地更改 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 提供的上述答案更多的是我想要的。

于 2012-08-06T18:53:46.677 回答