我尝试将数据绑定到服务器端的radcombobox: 这是我的网格:
<telerik:RadGrid ID="gvWebUsers" runat="server"
OnNeedDataSource="gvWebUsers_NeedDataSource"
OnItemCreated="gvWebUsers_ItemCreated"
Skin="Gray"
AutoGenerateColumns="false"
OnItemDataBound="gvWebUsers_ItemDataBound"
AllowAutomaticUpdates="true"
AllowPaging="true"
CssClass="SettingsGrid"
Width="99.7%">
<MasterTableView DataKeyNames="UserID" PageSize="15" EditMode="InPlace" >
<Columns>
<telerik:GridTemplateColumn HeaderText="Category" ItemStyle-Width="240px" UniqueName="Category">
<ItemTemplate>
<%#DataBinder.Eval(Container.DataItem, "IsUploadAllowed")%>
</ItemTemplate>
<EditItemTemplate>
<telerik:RadComboBox runat="server" ID="RadComboBox2" skin="Gray">
</telerik:RadComboBox>
</EditItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridEditCommandColumn FooterText="EditCommand footer" UniqueName="EditCommandColumn"
HeaderText="Edit" HeaderStyle-Width="100px" UpdateText="Update">
</telerik:GridEditCommandColumn>
</Columns>
</MasterTableView>
</telerik:RadGrid>
我在不同的帖子和示例中看到了这个代码的绑定:
protected void gvWebUsers_ItemDataBound(object sender, GridItemEventArgs e)
{
if (e.Item is GridEditableItem && e.Item.IsInEditMode)
{
GridEditableItem editItem = (GridEditableItem)e.Item;
RadComboBox combo = (RadComboBox)editItem.FindControl("RadComboBox2");
combo.DataSource = GetUploadStatus();
combo.DataTextField = "Key";
combo.DataValueField = "Value";
combo.DataBind();
}
}
当我运行此代码时,它永远不会进入“if”子句。 有什么想法吗? 好像我没有“GridEditableItem”。
答案 0 :(得分:2)
该项不是GridEditableItem,因为它不在EditForm中。
我曾经使用以下方法解决这个问题:
protected void gvWebUsers_ItemDataBound(object sender, GridItemEventArgs e)
{
if (e.Item is GridDataItem)
{
GridDataItem myGridItem = (GridDataItem)e.Item;
if (myGridItem.IsInEditMode)
{
RadComboBox combo = (RadComboBox)myGridItem["Category"].FindControl("RadComboBox2");
combo.DataSource = GetUploadStatus();
combo.DataTextField = "Value";
combo.DataValueField = "Key";
combo.DataBind();
combo.SelectedValue = DataBinder.Eval(myGridItem.DataItem, "UploadStatus").ToString();
}
}
答案 1 :(得分:0)
你的网格是否绑定了一些数据?在您的网格中有数据行之前,它不会创建&#39; GridEditableItem。