【问题标题】:How to set the SelectedValue attribute of Telerik RadComboBox inside the FormTemplate of a RadGrid如何在 RadGrid 的 FormTemplate 中设置 Telerik RadComboBox 的 SelectedValue 属性
【发布时间】:2011-02-14 00:45:39
【问题描述】:

我有一个我认为应该是直截了当的问题。我有一个启用了 FormTemplate 编辑和 AJAX 的 RadGrid。 FormTemplate 中的一个字段是一个 RadComboBox,其中填充了美国州的选择。我可以将 RadComboBox 绑定到数据源以填充所有项目,但我无法设置 SelectedValue 属性。

当为 RadGrid 上的一行单击编辑按钮时加载此 RadComboBox。使用自定义 FormTemplate 并通过 AJAX 加载正在编辑的行的内容。

【问题讨论】:

  • 您是想在 Javascript 中设置值客户端,还是在代码中设置服务器端?此外,SelectedValue 应该是数据绑定的还是以编程方式选择的?
  • 我想以声明方式设置 SelectedValue 服务器端。我已经知道价值是什么了。 SelectedValue 似乎不是一个声明性选项。另外,我不确定如何在后面的代码中设置 SelectedValue,因为这是一个启用 AJAX 的 RadGrid。

标签: ajax telerik radgrid selectedvalue radcombobox


【解决方案1】:

如果你是 DataBinding,它就像添加一样简单

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;
        } 
    } 

【讨论】:

  • 应该是,但 Visual Studio 的行为就像此控件不存在 SelectedValue 属性一样。无论如何包含它都会引发以下异常:消息:Sys.WebForms.PageRequestManagerServerErrorException:选择超出范围参数名称:值
  • 这是我的控件:
  • 您的 Telerik 安装可能有问题。如果您将 RadComboBox 从 Grid 中拉出,使其独立运行,一切正常吗?如果可以,请编辑您的第一篇文章以包含 RadGrid 的整个标记,尤其是 FormTemplate 部分。
  • 导致该问题的一个可能原因是 SelectedValue 与可用值不匹配。
  • 将 RadComboBox 拉出网格仍然无法设置 SelectedValue。我正在为 ASP.NET AJAX 使用 Visual Studio 2010 和 Q1 2010 RadControl。
【解决方案2】:

先清除radcombobox的所有项目,然后手动添加一个新项目

这是我在使用网络服务时设置新项目的方法

     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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多