ASP.Net c# - Kendo网格 - ValueObject与UIHint < - 需要动态
问题描述:
我对ASP.Net,C#和剑道的土地有点新。ASP.Net c# - Kendo网格 - ValueObject与UIHint < - 需要动态
我需要一些东西来代替UIHint("someEditorTemplate")
来取动态值。我们使用这些UIHints主要是为了做一个KendoDropDown来显示一个选择来填充表单中的一个字段。
我工作的应用程序有指定查看对象KendoGrids:
<%
Html.Kendo().Grid<NoiNlsConsignmentVO>()
.Name("grdSubSpecies")
.ToolBar(...)
.DataSource(ds => ds
...
.Read(r => r.Action("GridSelectSubSpecies", "RefData").Data("getSelectedSpecies"))
...
.Editable(e => e.Mode(Kendo.Mvc.UI.GridEditMode.PopUp))
.Render() %>
而且NoiNlsConsignmentVO如下。由于网格上的可编辑属性,会弹出一个对话框,允许创建/编辑VO中指定的字段。
namespace Daff.Lae.TraceCommon.ValueObjects
{
[DataContract]
[Serializable]
public class NoiNlsConsignmentVO: BaseTraceVO
{
[DataMember, ScaffoldColumn(false)]
public Int32 NoiId { get; set; }
[DataMember, Required, Display(Name = "Breed", Order = 1)]
public String BreedCode { get; set; }
[DataMember, Display(Name = "Description")]
public String Description { get; set; }
[DataMember, UIHint("NlsSubSpecies", null, "NoiId", NoiId)]
public String Species{ get; set; }
...
而我想要的是用于UIHint(“种”),从这个VO采取NoiId的动态值。你看我已经尝试过了。
然而,这并不工作,从我读过的UIHints只能采取静态值。
我可以使用什么机制来实现这一点,以便我可以传递NoiId的值?
答
我以错误的方式思考它。当你使用那些在底层有很多魔力的框架时,经常发生这种情况。
我通过在UIHint(the_template)
中指定的.Data(javascript_function)
加到the_template
来修复它。 The_Template是NlsSubSpecies.ascx
:
<%:
Html.Kendo().DropDownList().Name("ddlNlsSubSpecies")
.DataTextField("Text")
.DataValueField("Value")
.DataSource(source =>
{
source.Read(read =>
{
read.Action("GetNLSSubSpecies", "RefData").Data("getSpecies");
});
})
.Events(ev => ev.DataBound("setDefaultValue"))
%>
,并在相关.ascx
文件:
<script type="text/javascript">
function getSpecies() {
let species = { species: '<%=Model.SpeciesCode%>' };
return species;
}
</script>
而在RefDataController.cs
:
public JsonResult GetNLSSubSpecies(String species)
{
...
最后(或首先),(中)的ViewObject /模板:
[DataMember, UIHint("NlsSubSpecies")]
public String Species{ get; set; }
我相信我们作为ViewObjects(VO)有ASP.NET MVC 2模板。我发现http://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-1-introduction.html这可能会导致我想要实现的目标... – HankCa