我正在使用razor asp.net mvc 4显示一个kendo网格。我有一系列按钮,每个按钮显示不同的网格。因此,我在点击时使用jquery来获取按钮事件。然后,我只是清除dom的网格部分,并在其位置重新加载新网格。也就是说,我不想使用href重新加载整个页面,因为只想加载一个部分。
我的问题是,如何在jQuery中调用@(Html.Kendo()。Grid,因为它通常不会放在脚本中,当放入时,会显示所有语法错误。
正如您所看到的,我对模型或函数的使用并不十分熟练,如果函数是答案,那么放在哪里。任何帮助将不胜感激。
伊恩
答案 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>