Radgrid:更新update命令中的提取值以进行自动更新

时间:2012-03-28 13:18:11

标签: asp.net telerik-grid radgrid

在针对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进行处理,然后在代码中进行映射和更新....不想这样做,我希望它能以与插入相同的方式工作确实。对于我不需要更改散列表中的任何值的情况,它完美地工作,更新正在运行。

任何帮助表示赞赏 弗拉基米尔

1 个答案:

答案 0 :(得分:1)

如果我没弄错,提取的值应该已经设置为下拉列表的选定值。尝试使用Bind在标记中设置所选值:

<telerik:RadComboBox ID="ddlCountries" runat="server" 
    SelectedValue='<%# Bind("CountryID") %>' ...>