Gridview 无法在RadGrid EditTemplate列中设置标签的文本值
在编辑模式下,在Telerik RadGrid EditItemTemplate列中显示asp dropdownlist选定值时出现问题。当我在一行上进入编辑模式时,下拉列表的选定值不会显示。下拉菜单有效,只是不显示当前数据。下面是我的RadGrid列布局Gridview 无法在RadGrid EditTemplate列中设置标签的文本值,gridview,telerik,radgrid,radgridview,Gridview,Telerik,Radgrid,Radgridview,在编辑模式下,在Telerik RadGrid EditItemTemplate列中显示asp dropdownlist选定值时出现问题。当我在一行上进入编辑模式时,下拉列表的选定值不会显示。下拉菜单有效,只是不显示当前数据。下面是我的RadGrid列布局 <Columns> <telerik:GridEditCommandColumn></telerik:GridEditCommandColu
<Columns>
<telerik:GridEditCommandColumn></telerik:GridEditCommandColumn>
<telerik:GridBoundColumn DataField="ContactID" HeaderText="ContactID" ReadOnly="true" UniqueName="ContactID" AllowFiltering="false"
DataType="System.Int16" DefaultInsertValue="" Exportable="false" Visible="false">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="Contact" HeaderText="Contact" SortExpression="Contact" UniqueName="Contact"></telerik:GridBoundColumn>
<telerik:GridTemplateColumn UniqueName="ContactTemplateColumn" HeaderText="Contact Type">
<ItemTemplate>
<asp:Label ID="Contact" runat="server"
Text='<%# DataBinder.Eval(Container.DataItem, "Contact") %>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="ddlContacts" runat="server" DataTextField="ContactType" DataValueField="ContactTypeID"></asp:DropDownList>
</EditItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridButtonColumn ConfirmText="Delete this contact?" ConfirmDialogType="RadWindow"
ConfirmTitle="Delete" ButtonType="ImageButton" ImageUrl="~/Images/filterCancel.gif" Text="Delete" CommandName="Delete" Exportable="false" />
</Columns>
是否有人可以帮助我,并提供一个解决方案,说明如何在EditItemTemplate中显示ASP下拉列表的选定值?我发现我在错误的位置应用了代码。我需要将它放在ONItemDataBound方法中。然后我可以绑定下拉列表。我还必须添加代码,以相同的方法显示现有记录的选定值。请参阅下面适用于我的情况的代码
protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e)
{
if (e.Item is GridEditableItem && e.Item.IsInEditMode)
{
//populate the drop down list
using (ExpungeEntities db = new ExpungeEntities())
{
var roles = db.Roles.Select(r => new { r.RoleData, r.RoleText }).ToList();
GridEditableItem item2 = e.Item as GridEditableItem;
DropDownList list = item2.FindControl("ddlRole") as DropDownList;
list.DataTextField = "RoleText";
list.DataValueField = "RoleData";
list.DataSource = roles;
list.DataBind();
}
// Show the current role assigned from the database
GridEditableItem item = (GridEditableItem)e.Item;
DropDownList ddl = (DropDownList)item.FindControl("ddlRole");
ddl.SelectedValue = DataBinder.Eval(e.Item.DataItem, "Role").ToString();
}
}
对不起,你能编辑你的帖子吗?aspx代码似乎不正确。你的下载列表在哪里?@AlexandruPopa谢谢你的回复。我已经找到了解决方案,并将其作为答案发布。谢谢@AlexandruPopa我已经编辑了我的帖子并显示了所有的专栏。下面显示的答案适用于不同的情况,不适用于此问题。下面的一个用于绑定下拉列表我在更新记录时绑定下拉列表或获取新值没有问题。我的问题发生在On Item Update命令中。它找到下拉控件,但似乎无法找到标签控件。
protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e)
{
if (e.Item is GridEditableItem && e.Item.IsInEditMode)
{
//populate the drop down list
using (ExpungeEntities db = new ExpungeEntities())
{
var roles = db.Roles.Select(r => new { r.RoleData, r.RoleText }).ToList();
GridEditableItem item2 = e.Item as GridEditableItem;
DropDownList list = item2.FindControl("ddlRole") as DropDownList;
list.DataTextField = "RoleText";
list.DataValueField = "RoleData";
list.DataSource = roles;
list.DataBind();
}
// Show the current role assigned from the database
GridEditableItem item = (GridEditableItem)e.Item;
DropDownList ddl = (DropDownList)item.FindControl("ddlRole");
ddl.SelectedValue = DataBinder.Eval(e.Item.DataItem, "Role").ToString();
}
}