我们一直在努力将值传递给以下模板:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<MyCuteWeb.Areas.Admin.Models.DisplayType>" %>
<%= Html.Kendo()
.DropDownList()
.Name(ViewData.TemplateInfo.GetFullHtmlFieldName(string.Empty))
.DataTextField("Name")
.DataValueField("Value")
.DataSource(source =>
{
source.Read(read =>
read.Action("GetSelectedProperties",
"UserQueryTypes",
new { id="3F2504E0-4F89-11D3-9A0C-0305E82C3301" }));
})
%GT;
此模板调用AJAX
服务以获取可能的下拉值列表,但AJAX
服务必须接受将从Kendo GridView
中的网格单元传递的参数。我们不确定如何传递此参数。
"3F2504E0-4F89-11D3-9A0C-0305E82C3301"
从一个单元格更改为单元格,但我们不确定如何动态地将其传递给此模板。任何帮助将受到高度赞赏。模板在Cell EditorTemplate中指定,或通过[UIHint("....")]
非常感谢任何建议。
答案 0 :(得分:2)
它对我有用。
在网格中使用事件:
.Events(e => e.DataBound("On_DataBound"))
这是我的事件的js函数:
function On_DataBound(e) {
var data = e.sender._data;
for (var i = 0; i < data.length; i++) {
var kendoId = data[i].uid;
var categoryId = data[i].UserQueryTypeID;
$("#MainProp_" + categoryId).kendoDropDownList({
dataTextField: "Name",
dataValueField: "Value",
autoBind: true,
change: function(e) {
var value = this.value();
var catID = $(e.sender.element).attr("data-categoryID")
$.post("/UserQueryTypes/SetKeyDetailField", { categoryId: catID, keyDetailField: value }, function (data) { if (data != "true") alert(data); });
},
dataSource: {
transport: {
read: {
dataType: "json",
url: "/UserQueryTypes/GetSelectedProperties?categoryID=" + categoryId
}
}
}
});
}
}
在网格中使用模板:
col.Bound(b => b.UserQueryTypeID).ClientTemplate("<input id=\"MainProp_#=UserQueryTypeID#\" data-categoryID=\"#=UserQueryTypeID#\" />");
答案 1 :(得分:1)
您的数据在客户端动态变化,意味着您应该使用javascript,这应该会让您了解如何实现它:
<%= Html.Kendo()
.DropDownList()
.Name(ViewData.TemplateInfo.GetFullHtmlFieldName(string.Empty))
.DataTextField("Name")
.DataValueField("Value")
.DataSource(source =>
{
source.Read(read =>
read.Action("GetSelectedProperties","UserQueryTypes")).Data("getId");
})
%>
<script>
function getId() {
return {
id: $("#inputbox1").val() //replace $("#inputbox1").val() with code which get the proper id from grid.
};
}
</script>
也检查此样本(Cascading DropDownList)。希望能解决你的问题。