如何将数据绑定到网格 EditItemTemplate 内的 radcombobox [英] How to bind data to radcombobox inside grid EditItemTemplate

查看:53
本文介绍了如何将数据绑定到网格 EditItemTemplate 内的 radcombobox的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试从服务器端将数据绑定到 radcombobox:这是我的网格:

I try to bind data to a radcombobox from server side: Here is my grid:

            <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>

我在不同的帖子和例子中看到了这个绑定代码:

I have seen this code for binding in different posts and examples:

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".

When I run this code, it never enters inside the "if" clause. Any ideas why? It seems like I don't have " GridEditableItem ".

推荐答案

该项目不是 GridEditableItem,因为它不在 EditForm 内.

The item is not GridEditableItem because it is not inside EditForm.

我曾经使用以下方法解决这个问题:

I used to solve this problem using:

    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();
            }
}

这篇关于如何将数据绑定到网格 EditItemTemplate 内的 radcombobox的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆