如何将模型传递到模板
本文关键字:模型 | 更新日期: 2023-09-27 18:34:43
我们一直在努力将值传递给以下模板:
<%@ 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" }));
})
%>
此模板调用 AJAX
服务以获取可能的下拉列表的列表,但AJAX
服务必须接受将从 Kendo GridView
中的网格单元传递的参数。我们不确定如何传递此参数。
"3F2504E0-4F89-11D3-9A0C-0305E82C3301"
单元格之间发生了变化,但我们不确定如何动态地将其传递给此模板。任何帮助将不胜感激。模板在单元格编辑器模板中指定,或通过[UIHint("....")]
在宿主类中指定属性来指定
任何建议将不胜感激。
它对我有用。
网格中的使用事件:
.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#'" />");
你的数据在客户端是动态变化的,这意味着你应该使用 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>
也检查此示例(级联下拉列表(。希望能解决您的问题。