我有一个标准对话框(不是Telerik Kendo对话框),其中包含许多控件,包括Telerik网格。 我使用了带有数据目标和数据切换模式的按钮,并且一切正常。单击按钮显示对话框。一切都很好。
现在,我已经意识到,在页面最初被加载到用户决定单击按钮的时间之间,该网格中的数据不再是最新的。当用户打开对话框时,我需要刷新它。
因此,我将按钮更改为设置点击事件。很好然后在函数中,我试图使用jQuery dialog()打开对话框,但这不起作用。我收到一堆图标错误和未发现的404错误,然后显示为空。
所以我知道,如果我将整个内容迁移到kendo对话框中(我本来应该做的),我可能可以这样解决,或者,如果我包含一堆jquery引用,我可能可以解决也可以这样做(但可能会更改对话框的样式)。
但是,该页面具有选项卡和面板以及根据数据动态创建的模态而非常复杂,因此我不希望立即迁移任何内容。 使用data-target和data-toggle可以正常工作。
所以我的问题是,如何在不重组/迁移任何代码或引用的情况下手动模拟数据切换/数据模式?
有效示例:
<button type="button" id="btnProcessReceipt-10" name="btnProcessReceipt-10" href="#" title="Process Receipt" class="button k-button" style="width:120px" data-toggle="modal" data-target=".process-receipt-many-10">Process Receipt</button>
我现在想做的不起作用的示例:
<button type="button" id="btnProcessReceipt-10" name="btnProcessReceipt-10" href="#" title="Process Receipt" onclick="processReceiptDialog(this)" class="button k-button" style="width:120px">Process Receipt</button>
这是processReceiptDialog函数:
function processReceiptDialog(e) {
if (typeof e === "undefined")
return;
var idArr = e.id.split('-');
var idBatch = idArr[idArr.length - 1];
var grid = $("#active-invoices-" + idBatch).data("kendoGrid");
grid.dataSource.read();
$(".process-receipt-many-" + idBatch).dialog();
}
正如我所说,要使其一开始就工作很麻烦,所以我宁愿不必做太多的工作。只需手动控制显示/隐藏即可。
谢谢! 布鲁斯
答案 0 :(得分:0)
替换行:
$(".process-receipt-many-" + idBatch).dialog();
与此:
$(".process-receipt-many-" + idBatch).data("kendoGrid").dialog();
如果您使用对话框,则将“ kendoGrid”替换为“ kendoDialog”