2012-03-28 85 views
0

在對一個ObjectDataSource定期FormView控件更新命令更改提取的值,我們定義的方法的更新事件將值添加到正在編輯的項目,像這樣:radgrid控件:在自動更新

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中,我使用的是編輯表單。插入是偉大的工作把這個代碼在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

我假設你正在使用他們的AUTOMAGIC更新,與頁面上的'SqlDataSource'控制? – 2012-03-28 14:56:17

+0

我正在使用已聲明的InsertMethod,UpdateMethod,DeleteMethod和SelectMethod的ObjectDataSource。這個objectdatasource是我的RadGrid的數據源。 – Vladimir 2012-03-28 23:25:45

回答

1

如果我沒有記錯的話,所提取的值應該已經被設置爲下拉列表中選擇的值。嘗試使用Bind的標記來設置選定值:

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

那麼,首先,在我的情況下,我的情況下,selectedValue屬性沒有出現在RadComboBox的有效屬性上(我試圖把它放在任何地方,但它不起作用)。但是,假設這對我和radcombobox來說是另一個問題,那麼我該如何處理複雜的組件和/或需要問題中描述的行爲的情況? – Vladimir 2012-03-28 23:23:36

+0

智能感知不會提取它,但它在那裏。我用過很多次。不知道爲什麼當你嘗試時它不起作用,但如果正確完成,它應該。你有沒有嘗試過使用** Bind **和** Eval **?你正在使用什麼樣的數據源,並且能詳細說明你的行爲意味着什麼? – 2012-03-29 01:36:21