在针对objectDataSource的常规formview上,我们定义了Updating事件的方法,以便为正在编辑的项添加值,如下所示:
protected void MyFormView_ItemUpdating(object sender, FormViewUpdateEventArgs e)
{
RadComboBox countriesCombo =
(RadComboBox)MyFormView.FindControl("CountryRadComboBox");
// this should never be null, other wise, error is shown
if (!string.IsNullOrEmpty(countriesCombo.SelectedValue))
e.NewValues["CountryId"] = countriesCombo.SelectedValue;
在RadGrid中,我使用的是编辑表单。 Insert将这段代码放在PerformInsert事件方法中非常有用:
GridEditFormInsertItem gridItem = (GridEditFormInsertItem)e.Item.OwnerTableView.GetInsertItem();
Hashtable values = new Hashtable();
gridItem.ExtractValues(values);
values["ReferenceId"] = 0;
RadComboBox comboCountries = (RadComboBox)gridItem.FindControl("CountryRadComboBox");
values["CountryID"] = comboCountries.SelectedValue;
e.Item.OwnerTableView.InsertItem(values);
但是,尝试对编辑执行相同操作并不适用于我。这是我无法做到的最后一步。一旦我用组合中的值更改哈希表值,我该如何表明它必须使用这些值?
在telerik示例中,他们使用从数据源获取的DataTable进行处理,然后在代码中进行映射和更新....不想这样做,我希望它能以与插入相同的方式工作确实。对于我不需要更改散列表中的任何值的情况,它完美地工作,更新正在运行。
任何帮助表示赞赏 弗拉基米尔
答案 0 :(得分:1)
如果我没弄错,提取的值应该已经设置为下拉列表的选定值。尝试使用Bind
在标记中设置所选值:
<telerik:RadComboBox ID="ddlCountries" runat="server"
SelectedValue='<%# Bind("CountryID") %>' ...>