2010-04-29 61 views
3

我有我認爲應該是一個直截了當的問題。我有一個RadGrid與FormTemplate編輯和AJAX啓用。 FormTemplate中的一個字段是一個RadComboBox,其中填充了美國州選擇。我可以將RadComboBox綁定到數據源以填充所有項目,但我無法設置SelectedValue屬性。如何在RadGrid的FormTemplate中設置Telerik RadComboBox的SelectedValue屬性

當RadGrid上的某行單擊編輯按鈕時,加載此RadComboBox。使用自定義的FormTemplate,並通過AJAX加載正在編輯的行的內容。

+0

你們是不是要設置的值客戶端的Javascript設置新的項目,或代碼中的服務器端?此外,SelectedValue應該是數據綁定還是以編程方式選擇? – Serapth 2010-04-29 22:29:26

+0

我想聲明地設置SelectedValue服務器端。我已經知道它的價值了。 SelectedValue似乎不是一個聲明性選項。另外,我不確定如何在後面的代碼中設置SelectedValue,因爲這是一個支持AJAX的RadGrid。 – 2010-04-29 22:35:51

回答

5

如果你是數據綁定,它的字面意思一樣容易增加

SelectedValue='<%# Bind("FieldName")%>' 

裏面radcombobox控件的FormTemplate聲明。

不過,若你想以編程方式確定什麼樣的價值選擇,那麼你需要在radgrid控件來實現的ItemDataBound,like the following example

protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e) 
    { 
     if (e.Item is GridEditFormItem && e.Item.IsInEditMode) 
     { 
      GridEditFormItem editFormItem = (GridEditFormItem)e.Item; 
      RadComboBox combo = (RadComboBox)editFormItem.FindControl("yourControlName"); 
      combo.SelectedValue= Somevalue; 
     } 
    } 
+0

它應該是,但Visual Studio的行爲就像此控件不存在的SelectedValue屬性。包括也無妨引發以下例外: 消息:Sys.WebForms.PageRequestManagerServerErrorException:選擇超出範圍參數名稱的:值 – 2010-04-29 23:20:17

+0

這是我的控制: 」runat =「server」/> – 2010-04-29 23:21:56

+0

您的Telerik安裝可能有問題。如果你將RadComboBox從網格中拉出來,那麼它是否可以工作?如果可以,請編輯您的第一篇文章以包含RadGrid的整個標記,特別是FormTemplate部分。 – Serapth 2010-04-29 23:28:22

1

明確最初,然後radcombobox控件的所有項目手動添加新項

這是我做什麼,當我使用Web服務

 ddl.ClearSelection() 
      ddl.Items.Clear() 

'below i'm getting the actual value and the text to display 
      Using reader As IDataReader = GetClientByClientID(CInt(value)) 
       If reader.Read Then 

'adding the item will show in the dropdown 
        Dim item As New RadComboBoxItem(reader("DisplayName").ToString, reader("ID").ToString) 
        item.Selected = True 
        ddl.Items.Add(item) 

'this line will make the combobox text to be displayed correctly 
        ddl.Text = reader("DisplayName").ToString 

        ddl.DataBind() 
       Else 
        ddl.Text = "" 

        ddl.ErrorMessage = "Selected Client Not Found !" 
       End If 

       reader.Close() 
      End Using