从jquery函数中调用@(Html.Kendo()。Grid

时间:2012-10-05 22:59:42

标签: javascript kendo-ui

我正在使用razor asp.net mvc 4显示一个kendo网格。我有一系列按钮,每个按钮显示不同的网格。因此,我在点击时使用jquery来获取按钮事件。然后,我只是清除dom的网格部分,并在其位置重新加载新网格。也就是说,我不想使用href重新加载整个页面,因为只想加载一个部分。

我的问题是,如何在jQuery中调用@(Html.Kendo()。Grid,因为它通常不会放在脚本中,当放入时,会显示所有语法错误。

正如您所看到的,我对模型或函数的使用并不十分熟练,如果函数是答案,那么放在哪里。任何帮助将不胜感激。

伊恩

1 个答案:

答案 0 :(得分:0)

我不确定你要做的就是在两个网格之间来回切换,或者你是否想要回到服务器以获取更新的数据。

第一种方法更简单。如果这对你有用,请告诉我:

基本上,为两个网格编写代码(因此它们都在页面加载时初始化),但关闭一个网格的可见性。然后,使用jQuery在点击时切换两个网格的可见性。

<强> Jquery的

function toggleGridView(on, off) {
    var gridToShow = "#Grid" + on + "Container";
    var gridToHide = "#Grid" + off + "Container";
    $(gridToShow).show();
    $(gridToHide).hide();
}

查看标记

<a class="k-button" href="#_" onclick="toggleGridView('1', '2')">Show Grid 1</a>
<a class="k-button" href="#_" onclick="toggleGridView('2', '1')">Show Grid 2</a>

<div id="container">
<div id="Grid1Container">
    @(Html.Kendo().Grid(Model.UserModel.UserAddressBook)
        .Name("Grid1")
        .Columns(columns =>
        {
            columns.Bound(i => i.CompanyName).Width(120).HtmlAttributes(new { id = "CompanyName" });
            //Other column data
        })
    )
</div>
<div id="Grid2Container" style="display:none;">
    @(Html.Kendo().Grid(Model.UserModel.UserProductBook)
        .Name("Grid1")
        .Columns(columns =>
        {
            columns.Bound(i => i.Description).Width(120).HtmlAttributes(new { id = "Description" });
            //Other column data
        })
    )    
</div>

Result