我有一個奇怪的網格細節模板奇怪的問題。我有兩個深層的細節模板,並且大部分時間都在工作(聽起來很奇怪)。有時,最深的網格不會沒有任何錯誤地綁定來自服務器的數據。在檢查Firebug時,我可以看到Json響應顯然是響應正確的數據,但網格不綁定數據(至少css類在標記中顯示「t-no-data」)。但讓我清楚的是,這只是偶爾發生,並非總是如此。在發生這種情況時,我一直在嘗試制定任何模式,但未能發現任何問題。下面是我的代碼示例:劍道網格細節模板兩級深 - 最深的網格有時不綁定
<div>
@(Html.Kendo().Grid<DepObject>()
.Name("DepartmentGrid")
.Columns(c =>
{
c.Bound(e => e.DepartmentCode).Hidden();
c.Bound(e => e.DepartmentName);
})
.ClientDetailTemplateId("CesTmp")
.DataSource(d => d.Ajax().Model(model => model.Id(p => p.DepartmentCode)))
.Scrollable(s => s.Enabled(true))
)
</div>
<script id="CesTmp" type="text/kendo-tmpl">
@(Html.Kendo().Grid<CesObject>()
.Name("CesGrid_#=DepartmentCode#")
.Columns(c =>
{
c.Bound(e => e.CesCode).Hidden();
c.Bound(e => e.CesName);
})
.ClientDetailTemplateId("ItemTmp")
.DataSource(dataSource => dataSource
.Ajax()
.Read(read => read.Action("GetCesData", "Cesce", new { depCode = "#=DepartmentCode#" }).Data("filterCes")).Model(m => m.Id(p => p.CesCode))
.Events(ev => ev.Error("onErrorCes"))
)
.ToClientTemplate()
)
</script>
<script id="ItemTmp" type="text/kendo-tmpl">
@(Html.Kendo().Grid<ItemObject>()
.Name("ItemGrid_#=CesCode#")
.Columns(columns =>
{
columns.Bound(p => p.Item).Hidden();
columns.Bound(p => p.Description).Encoded(false);
})
.DataSource(dataSource => dataSource
.Ajax()
.Read(read => read.Action("GetItemData", "Cesce", new { depCode = "#=DepartmentCode#", cesceCode = "#=CesCode#" }).Data("filterItem"))
.Events(ev => ev.Error("onErrorCes"))
)
.ToClientTemplate()
)
</script>
沒有人有任何想法可能是什麼造成這種奇怪的行爲?
也許你可以嘗試重現這與生成的JavaScript(那麼你可以做手動ajax請求在讀取操作和記錄數據和其他東西w這可能有助於診斷);你有沒有嘗試在瀏覽器中進行調試?例如查看.success方法被調用的內容以及之後會發生什麼? (理想情況下與未統一的Kendo UI來源) –
請確保始終您的網格ID(名稱)是唯一的。在不同的瀏覽器中檢查此行爲。 –
謝謝你的評論傢伙。我想我找到了解決這個問題的方法,但是我發現很難調試,但最終解決方案當然很簡單。 我將在稍後爲此創建一個答案,但我會提出您的意見。 – gardarvalur