2013-10-10 110 views
1

我们一直在努力与将值传递给下面的模板:如何将模型传递到模板

<%@ 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"从一个单元格到另一个单元格的变化,但我们不确定如何动态地将它传递给此模板。任何帮助将不胜感激。该模板在Cell EditorTemplate中指定,或者通过在主机类中指定属性来通过[UIHint("....")]

任何建议将不胜感激。

回答

2

它适合我。在网格

使用事件:

.Events(e => e.DataBound("On_DataBound")) 

这是我的事件js函数:

col.Bound(b => b.UserQueryTypeID).ClientTemplate("<input id=\"MainProp_#=UserQueryTypeID#\" data-categoryID=\"#=UserQueryTypeID#\" />"); 
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)。希望解决你的问题。

+0

谢谢您的回复:在网格

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 } } } }); } } 

使用模板,但是我在哪里获得'$(“#Inputbox1”)的id,因为它在每个单元格之间变化。该模板用于在网格的一个单元格内生成下拉菜单。这是如何将这个ID从网格视图传递到模板的问题。 – AstroSharp

相关问题