设置GridDropDownColumn的SelectedValue

时间:2014-09-02 13:26:37

标签: c# asp.net telerik radgrid

我正在尝试在RadGrid中设置GridDropDownColumn的值。 请注意,我的GridDropDownColumn不在模板中,只是<columns>的一部分。

我正在使用InsertCommand事件执行此操作,因为我的整个实验都是围绕操作数据。

前端:

<telerik:RadGrid ID="RadGrid1" runat="server">
  <MasterTableView>
    <Columns>
       <telerik:GridDropDownColumn DataSourceID="MySource" DataField="RowId" UniqueName="RowId" ListValueField="id" ListTextField="Name" SortExpression="RowId" HeaderText="RowId" />
    </Columns>
  </MasterTableView>
</telerik:RadGrid>

后端:

protected void RadGrid1_InsertCommand(object sender, GridCommandEventArgs e) {
  if (e.Item is GridEditFormItem && e.Item.IsInEditMode) {
    GridEditFormItem editItem = (GridEditFormItem)e.Item;
    DropDownList list = (DropDownList)editItem["GridDropDownColumn"].Controls[0];
    list.SelectedValue = HiddenFieldIdToSave.Value;
  }
}

这给了我一个相当讨厌的错误。

Unhandled exception at line 15, column 16485 in http://localhost:55555/Telerik.Web.UI.WebResource.axd?_TSM_HiddenField_=RadScriptManager1_TSM&compress=1&_TSM_CombinedScripts_=;;System.Web.Extensions,+Version=4.0.0.0,+Culture=neutral,+PublicKeyToken=31321323135:en-N:5924cf72drgdrg-a608a92942c5:ea597d4b:b25378d2;Telerik.Web.UI,+Version=2014.2.724.45,+Culture=neutral,+PublicKeyToken=121fae781awdawggcvb31-d2d2285652a6:fghfghfghf:58366029

0x800a139e - JavaScript runtime error: Sys.WebForms.PageRequestManagerServerErrorException: Cannot find cell bound to column with unique name 'GridDropDownColumn'

2 个答案:

答案 0 :(得分:0)

在您的后端C#中,您尝试访问名为GridDropDownColumn的列,但您应该使用行UniqueName属性,而您应该使用该属性设为RowId。试试这个:

protected void RadGrid1_InsertCommand(object sender, GridCommandEventArgs e)
{
    if (e.Item is GridEditFormItem && e.Item.IsInEditMode)
    {
        GridEditFormItem editItem = (GridEditFormItem)e.Item;

        // Use the column's unique name as the accessor:
        DropDownList list = (DropDownList)editItem["RowId"].Controls[0];

        list.SelectedValue = HiddenFieldIdToSave.Value;
    }
}

答案 1 :(得分:0)

我发现了为什么我收到此错误。

我有2个下拉列表,它们都连接在同一个数据源上,导致传递了错误值,这导致我的插入/更新DataObjectMethod触发错误。

我的例子也是看错了UniqueName。