【问题标题】:How to bind data to radcombobox inside grid EditItemTemplate如何将数据绑定到网格 EditItemTemplate 内的 radcombobox
【发布时间】:2014-07-26 05:14:15
【问题描述】:

我尝试从服务器端将数据绑定到 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 ”。

【问题讨论】:

    标签: telerik telerik-grid radgrid radcombobox


    【解决方案1】:

    该项目不是 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();
                }
    }
    

    【讨论】:

      【解决方案2】:

      您的网格是否绑定到某些数据?在您的网格中有数据行之前,它不会创建“GridEditableItem”。

      【讨论】:

        猜你喜欢
        • 2011-05-28
        • 1970-01-01
        • 2021-07-12
        • 1970-01-01
        • 1970-01-01
        • 2012-12-25
        • 2016-11-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多