我有一個Kendo UI ASP.NET MVC網格,帶有作爲窗體一部分提交的CRUD操作。在下面的代碼片段中,我試圖顯示帶有內聯可編輯組合框(綁定到用戶名和ID)的列,該列顯示用戶的名稱,但具有用戶ID的值。防止ClientTemplate覆蓋GridTemplate中的EditorTemplate
提交形成正常,但顯示的用戶ID,而不是名稱:
columns.ForeignKey(p => p.UserId, (System.Collections.IEnumerable)ViewBag.Users, "SystemUserId", "Name").Title("User").EditorTemplateName("ComboBoxInForm").Visible(true).ClientTemplate("#= UserId #" +
"<input type='hidden' name='Users[#= index(data) #].UserId' value='#= UserId #' />"
);
ComboBoxInForm EditorTemplate:
@model object
@(
Html.Kendo().ComboBoxFor(m => m)
.BindTo((SelectList)ViewData[ViewData.TemplateInfo.GetFullHtmlFieldName("") + "_Data"])
)
如果我刪除,它提供的表單輸入標籤ClientTemplate,用戶的名字就是顯示的內容,而不是用戶ID的值,這正是我想要的。但是,我需要批量提交它作爲表單的一部分,所以我無法刪除表單輸入標記。
未能提交表單(沒有輸入標籤),但正確地顯示用戶名稱,而不是標識:
columns.ForeignKey(p => p.UserId, (System.Collections.IEnumerable)ViewBag.Users, "SystemUserId", "Name").Title("User").EditorTemplateName("ComboBoxInForm").Visible(true);
我可以使用哪些解決這兩方面的要求結合起來,使網格列顯示器名稱(但帶有ID的值),並提供表單輸入標籤?