在RadGrid中的Telerik DropDownList中设置SelectedValue

时间:2016-11-03 17:46:29

标签: telerik telerik-grid

我正在尝试在RadGrid的EditTemplate中设置RadDropDownList的SelectedValue。 DataItemBound事件似乎在编译时抛出了错误。

ASP.NET

                <telerik:GridTemplateColumn DataField="givenAnswer" HeaderText="givenAnswer" UniqueName="givenAnswer">
                <ItemTemplate> 
                    <%# DataBinder.Eval(Container.DataItem, "givenAnswer") %>
                </ItemTemplate> 
                <EditItemTemplate>
                    <telerik:RadDropDownList ID="ddlGivenAnswer" runat="server" OnItemDataBound="ddlGivenAnswer_DataBound">
                        <Items>
                            <telerik:DropDownListItem Text="Yes" Value="Yes" />
                            <telerik:DropDownListItem Text="No" Value="No" />
                        </Items>
                    </telerik:RadDropDownList>
                </EditItemTemplate>
            </telerik:GridTemplateColumn>

C#

        protected void ddlGivenAnswer_DataBound(object sender, GridItemEventArgs e)
    {
        if ((e.Item.IsInEditMode))
        {
            GridEditFormItem item = (GridEditFormItem)e.Item;
            RadDropDownList ddl = (RadDropDownList)item.FindControl("ddlgivenAnswer");
            ddl.SelectedValue = (string)DataBinder.Eval(e.Item.DataItem, "givenAnswer").ToString();
        }
    }

错误

CS0123: No overload for 'ddlGivenAnswer_DataBound' matches delegate 'DropDownListItemEventHandler'

此错误发生在Telerik:ASP.NET中的RadDropDownList打开标记行。我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

主编辑:

错误CS0123

首先在Google中输入CS0123告诉我您的活动使用了错误的参数。可能是一个copypast失败了。删除aspx中的even,并要求intelisense创建一个新的。或者是这个。“

protected void ddlGivenAnswer_ItemDataBound(object sender, Telerik.Web.UI.DropDownListItemEventArgs e)

的ItemDataBound:

在控件中绑定数据时会发生ItemDataBound。 我非常确定内联声明不会触发此事件。

轻微误解:

为什么有人会动态更改所选元素的值? 这就像改变投票的价值而不改变他自己的投票或投票的名称。

你想要的是检查rigth项目。 要在下拉列表中查看Waldo:

ddlGivenAnswer.FindItemByValue("Waldo").Selected = true;

检查正确的项目:

ddlGivenAnswer.FindItemByValue( 
                                DataBinder.Eval(e.Item.DataItem, "givenAnswer").ToString()
                               ).Selected = true;