2010-04-29 56 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