Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Combobox Telerik MVC组合框是否基于行外值在网格中?_Combobox_Telerik Grid_Telerik Mvc - Fatal编程技术网

Combobox Telerik MVC组合框是否基于行外值在网格中?

Combobox Telerik MVC组合框是否基于行外值在网格中?,combobox,telerik-grid,telerik-mvc,Combobox,Telerik Grid,Telerik Mvc,我需要一个Telerik MVC网格,带有一个组合框(在编辑模式下),该组合框根据每行中的条件填充。因此,当我在一行上单击“编辑”时,生成的组合框中的项目将不同于其他行中的translator组合框。我认为这一行应该按需加载,但我不知道如何在没有编辑器模板的网格中创建组合框。看起来我无法将参数传递给编辑器模板 以下是此应用程序的用例: 想象一下,我有一个网格中带翻译的语言列表。编辑每行时,将显示一个翻译器组合框,其中仅显示该特定语言的翻译器。因此,法语将有一个名为皮埃尔、弗朗索瓦和雅克的翻译组合

我需要一个Telerik MVC网格,带有一个组合框(在编辑模式下),该组合框根据每行中的条件填充。因此,当我在一行上单击“编辑”时,生成的组合框中的项目将不同于其他行中的translator组合框。我认为这一行应该按需加载,但我不知道如何在没有编辑器模板的网格中创建组合框。看起来我无法将参数传递给编辑器模板

以下是此应用程序的用例: 想象一下,我有一个网格中带翻译的语言列表。编辑每行时,将显示一个翻译器组合框,其中仅显示该特定语言的翻译器。因此,法语将有一个名为皮埃尔、弗朗索瓦和雅克的翻译组合框,但西班牙语将有如何塞、马里奥,可能还有皮埃尔的名字,因为他会说法语和西班牙语

关于如何使用Telerik MVC网格和Combobox实现这一点,有什么想法吗

提前感谢,, 史蒂夫

更新: 阿塔纳斯, 你能提供一个有效的例子吗?我会犯错误。以下是我基于您的代码编写的javascript:

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”。