Combobox Telerik MVC组合框是否基于行外值在网格中?
我需要一个Telerik MVC网格,带有一个组合框(在编辑模式下),该组合框根据每行中的条件填充。因此,当我在一行上单击“编辑”时,生成的组合框中的项目将不同于其他行中的translator组合框。我认为这一行应该按需加载,但我不知道如何在没有编辑器模板的网格中创建组合框。看起来我无法将参数传递给编辑器模板 以下是此应用程序的用例: 想象一下,我有一个网格中带翻译的语言列表。编辑每行时,将显示一个翻译器组合框,其中仅显示该特定语言的翻译器。因此,法语将有一个名为皮埃尔、弗朗索瓦和雅克的翻译组合框,但西班牙语将有如何塞、马里奥,可能还有皮埃尔的名字,因为他会说法语和西班牙语 关于如何使用Telerik MVC网格和Combobox实现这一点,有什么想法吗 提前感谢,, 史蒂夫 更新: 阿塔纳斯, 你能提供一个有效的例子吗?我会犯错误。以下是我基于您的代码编写的javascript:Combobox Telerik MVC组合框是否基于行外值在网格中?,combobox,telerik-grid,telerik-mvc,Combobox,Telerik Grid,Telerik Mvc,我需要一个Telerik MVC网格,带有一个组合框(在编辑模式下),该组合框根据每行中的条件填充。因此,当我在一行上单击“编辑”时,生成的组合框中的项目将不同于其他行中的translator组合框。我认为这一行应该按需加载,但我不知道如何在没有编辑器模板的网格中创建组合框。看起来我无法将参数传递给编辑器模板 以下是此应用程序的用例: 想象一下,我有一个网格中带翻译的语言列表。编辑每行时,将显示一个翻译器组合框,其中仅显示该特定语言的翻译器。因此,法语将有一个名为皮埃尔、弗朗索瓦和雅克的翻译组合
function TaskGrid_OnEdit(e)
{
var combobox = $(e.row).find("#ComboBoxId").data("tComboBox");
//var values = getValuesForDataItem(e.dataItem); // get the values for the current data item
var values =
[
{ Text:"Product 1", Value:"1" },
{ Text:"Product 2", Value:"2" },
{ Text:"Product 3", Value:"3" },
];
combobox.dataBind(values); // fill the combobox
}
这是编辑器模板,我在这里不绑定它:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Model.Data.tblJobTask>" %>
<%: Html.Telerik().DropDownListFor(s => s.SupplierID).Name("ComboBoxId") %>
s、 供应商ID)。名称(“ComboBoxId”)%%>
顺便说一下,编辑器模板中的模型不会映射到解决方案中的任何模型。那里的模型应该映射到填充组合的数据,还是映射到填充网格的列表的模型
Steve要在网格中嵌入组合框,可以选中代码库项目(只需用组合框替换dropdownlist)。不过,您仍然需要使用编辑器模板。 为了使用特定于当前行的值填充组合框,可以使用网格的事件。在那里,您可以使用combobox的方法(在客户端绑定)设置它,或者使用ajax调用它的方法填充它。下面是一些代码:
function Grid_onEdit(e) {
var combobox = $(e.row).find("#ComboBoxId").data("tComboBox");
var values = getValuesForDataItem(e.dataItem); // get the values for the current data item
combobox.dataBind(values); // fill the combobox
}
阿塔纳斯,谢谢你的回复,请看我上面的更新。我需要发布更多的代码,但在这些注释中无法完成。问题是在网格中找到组合框。这不起作用:var combobox=$(e.row).find(#ComboBoxId”).data(“tComboBox”);你说的是组合框,但你使用的是下拉列表。在这种情况下,您需要$(e.row).find(“#comboxId”).data(“tDropDownList”)。另外,您不需要将id设置为“ComboBoxId”,这只是一个示例。将其保留为DropDownlist for,然后使用“#SupplierID”。