在 telerik 剃须刀控件的弹出窗口中编辑下拉列表问题
本文关键字:窗口 编辑 下拉列表 问题 telerik 剃须刀 控件 | 更新日期: 2023-09-27 17:56:32
我在Telerik Razor Control中创建了下拉列表。现在的问题是,当我单击"编辑"按钮网格视图时,会出现一个弹出窗口,并且我正在获得充满值的下拉列表。顺便说一句,我没有获得选定的下拉列表值...我的意思是我没有获得所选记录的特定价值。它给出了下拉列表中的所有值,就像我们单击添加按钮时得到的那样......所以任何人都可以帮我
我知道
这个答案晚了一年,但我还是会发布它。对于 MVC:在您的网格中,使用字段的前键定义下拉列表,如下所示:
@(Html.Kendo().Grid<YOURModel>()
.Name("yournameGrid")
.Columns(columns =>
{
columns.Bound(device => device.Id),
columns.ForeignKey(model => model.HeadSetId, (System.Collections.IEnumerable)ViewData["headsets"], "Id", "Name");
})
.DataSource(dataSource => dataSource
.Ajax()
.Model(model =>
{
model.Id(device => device.Id);
model.Field(d => d.HeadSetId).DefaultValue(ViewData["defaultHeadSetId"]);
})
.Read(read => read.Action("FunctionHere", "ControllerHere"))
)
然后在控制器中,在加载网格视图的函数中定义下拉列表的数据:
PopulateDropdownList();
这个函数看起来像这样:
private void PopulateDropdownList()
{
var data= db.HeadSets.ToList()
.OrderBy(h => h.Name)
.Select(h => new HeadSet
{
Id = h.Id,
Name = h.Name
});
ViewData["headsets"] = headSets;
int hsID = 0;
if (headSets.Count() > 0)
{
hsID = headSets.First().Id;
}
ViewData["defaultHeadSetId"] = hsID;
}
在弹出窗口(模板)中,定义下拉列表:
@(Html.Kendo().DropDownListFor(m => m.HeadsetId)
.Name("HeadSetId") // THE NAME OF THE WIDGET MUST BE THE SAME AS THE PROPERTY!.
.HtmlAttributes(new { @style = "margin-left:15px;" })
.DataValueField("Id") // The value of the dropdown is taken from the item's Id property.
.DataTextField("Name") // The text of the items is taken from the item's Name property.
.BindTo((System.Collections.IEnumerable)ViewData["headsets"])// A list of all headsets which is populated in the controller.
)
这应该将记录的选定值正确绑定到下拉列表。