我正在尝试在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打开标记行。我在这里缺少什么?
答案 0 :(得分:0)
CS0123
:首先在Google中输入CS0123
告诉我您的活动使用了错误的参数。可能是一个copypast失败了。删除aspx中的even,并要求intelisense创建一个新的。或者是这个。“
protected void ddlGivenAnswer_ItemDataBound(object sender, Telerik.Web.UI.DropDownListItemEventArgs e)
在控件中绑定数据时会发生ItemDataBound。 我非常确定内联声明不会触发此事件。
为什么有人会动态更改所选元素的值? 这就像改变投票的价值而不改变他自己的投票或投票的名称。
你想要的是检查rigth项目。 要在下拉列表中查看Waldo:
ddlGivenAnswer.FindItemByValue("Waldo").Selected = true;
检查正确的项目:
ddlGivenAnswer.FindItemByValue(
DataBinder.Eval(e.Item.DataItem, "givenAnswer").ToString()
).Selected = true;