The data in the column cell must be linked to another page. KendoUI Grid Widget

I am studying the KendoUI library to use in the Asp.Net Mvc 3 project. This is an example of a grid widget filled with some local data. I need some of the columns to be links that lead to another page of the application. For example, if you click "Deposit", you should go to the "Home / Deposit" view. How can this be done? Any help with a working example would be greatly appreciated. Thank.

Here is an example of Fiddler:

http://jsfiddle.net/MwHNd/245/

+5
source share
2 answers

You should use a template column, here is an example

http://jsfiddle.net/aNCV4/11/

+10
source

, :

http://demos.telerik.com/kendo-ui/grid/index

http://bristowe.com/blog/2012/5/9/connecting-the-kendo-ui-datasource-to-remote-data.html

, JavaScript Kendo:

(function(myPage, $, undefined) {
 
    var IDS = {
        ...
        myGrid: "#my-grid",
 
        ...
 
        selectedMasterkey: "#selected-master-key",
        selectedChildkey: "#selected-child-key",
    };
 
    var Grids = {
        MyGrid: null,
    };
 
    function initMyGrid() {
        $(IDS.myGrid).kendoGrid({
            selectable: true,
            scrolable: true,
            sortable: true,
            columns: [
                { field: "Key", title: "key", width: "60%" },
                { field: "Weight", title: "Weight", width: "20%" },
                { field: "Link", title: "Link", width: "20%", template:"<a href="../MyData.mvc/Index?key=#=KEY#">#=KEY#</a>"} <!-- This is the hyperlinked column -->
            ],
 
            change: function() {
                var selectedDataItem = this.dataItem(this.select());
                if (PageState.Selected.ChildKey != selectedDataItem.KEY) {
                    PageState.Selected.ChildKey = selectedDataItem.KEY;
                    myGridSelectionChanged();
                }
            },
 
            ...
 
        });
 
        Grids.MyGrid = $(IDS.myGrid).data('kendoGrid');
 
        Grids.MyGrid .element.on("dblclick", "tbody>tr", "dblclick", function(e) {
            var dbClickedKey = Grids.MyGrid .dataItem($(this)).KEY;
            window.open('../MyData.mvc/Index?key='+dbClickedKey,'_blank');
        });
        bindMyGrid();
    }
 
    function bindMyGrid() {
        var dataSource = new kendo.data.DataSource({
            transport: {
                read: {
                    url: "MyData",
                    dataType: "json"
                },
                parameterMap: function(data) {
                    return {
                        myDataId: getQueryStringParameterByName('mydataid')
                    }
                }
            },
            schema: {
                data: function(response) {
                    return response;
 
                },
                total: function(response) {
                    return response.length;
                },
                parse: function(response) {
                    var myDataList= [];
                    $.each(response, function(i, key) {
                        myDataList.push({ "KEY": key });
                    });
                    return myDataList;
                },
            },
        });
        dataSource.fetch();
        dataSource.view();
        Grids.MyGrid.setDataSource(dataSource);
    }
    ...
 
    myPage.initialize = function() {
        initMyGrid();
    }
 
}(window.myPage = window.myPage || {}, jQuery));
Hide result

.

0

All Articles