2013-10-10 104 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

相關問題