0

Telerik Extensions for ASP.NET MVCを使用して、次のグリッドを作成しました。

TelerikMVCグリッド

..そして、ユーザーがグループ化された注文のアイテムを選択すると、クライアント側のイベント「OnRowSelect」を使用して注文番号の値を抽出できます。次に、選択した値をアラートに表示するところまで到達できますが、本当にやりたいのは、その値を別のコントローラーアクションに戻すことです。これはjavascriptを使用して可能ですか?

サーバー側のコントロールを試したところ、各詳細行の横にボタンが表示されましたが、これは目的の効果/外観ではありませんでした。

4

2 に答える 2

1

その場合、簡単にajax呼び出しを行うことができます。2つの部分からなるプロセスの一種(イベントハンドラーが別の.jsファイルにあると仮定します-それ以外の場合は、.ajax呼び出しで直接URLを定義できます)。投稿する必要のある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 に答える