Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 设置GridDropDownColumn的SelectedValue_C#_Asp.net_Telerik_Radgrid - Fatal编程技术网

C# 设置GridDropDownColumn的SelectedValue

C# 设置GridDropDownColumn的SelectedValue,c#,asp.net,telerik,radgrid,C#,Asp.net,Telerik,Radgrid,我正在尝试设置RadGrid中GridDropDownColumn的值。 请注意,我的GridDropDownColumn不在模板中,只是的一部分 我使用InsertCommand事件来实现这一点,因为我的整个实验都是围绕着处理其中的数据 前端: <telerik:RadGrid ID="RadGrid1" runat="server"> <MasterTableView> <Columns> <telerik:GridDrop

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

我使用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>
但这给了我一个相当严重的错误

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'
在后端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;
    }
}

我发现了为什么我会犯这个错误

我有两个下拉列表,它们都连接在同一个数据源上,这导致传递了一个假值,然后导致我的Insert/UPDATABATOBJECTMETHOD引发错误


另外,我的示例查看了错误的UniqueName。

感谢您发现了这一点,我对其进行了更改,以便正确定位我的RowId,但是仍然会出现相同的错误。您应该在问题中更新代码。您是如何调用RadGrid1_InsertCommand和/或触发InsertCommand事件的?嗨,DanM,即使在使用您的建议后,我也发现了为什么会出现此错误。我有两个下拉列表,它们都连接在同一个数据源上,这导致传递了一个假值,然后导致我的Insert/UPDATABATOBJECTMETHOD引发错误。我现在已经修复了它,并且没有问题,谢谢你的帮助。你应该把它作为一个答案发布,然后接受它!
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;
    }
}