首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在DataBound事件和插入事件中从Telerik RadGrid的UserControl中获取值

如何在DataBound事件和插入事件中从Telerik RadGrid的UserControl中获取值
EN

Stack Overflow用户
提问于 2016-09-07 23:18:15
回答 1查看 788关注 0票数 0

我使用的是telerik grid,这里我把RadGrid的UserControl放在了GridTemplateColumn里面,类似这样

代码语言:javascript
复制
    <telerik:GridTemplateColumn UniqueName="HardCoded" HeaderText="HardCoded" AllowFiltering="true"
                DataField="AccountDesc">
                <ItemTemplate>
                    <asp:Label ID="HardCoded" runat="server" Text='<%# Bind("HardCoded") %>'></asp:Label>
                </ItemTemplate>
                <EditItemTemplate>
                    <UserCtrl:UserCtrl runat="server" ID="lbl" />
                </EditItemTemplate>
                <InsertItemTemplate>
                  <UserCtrl:UserCtrl runat="server" ID="lbl" />                        
                </InsertItemTemplate>
                </telerik:GridTemplateColumn>

这里

这是我的UserControl组合代码

代码语言:javascript
复制
<telerik:RadComboBox runat="server" ID="HardCoded" >
    <Items>
        <telerik:RadComboBoxItem Value="1" Text="Member" Selected="true" />
        <telerik:RadComboBoxItem Value="2" Text="Employee" />
        <telerik:RadComboBoxItem Value="3" Text="All" />
    </Items>
</telerik:RadComboBox>

在数据绑定事件中,如果我按下网格上的编辑按钮,我只想设置选定的值。以下是我的DataBound事件代码

代码语言:javascript
复制
  protected void RadGrid1_OnItemDataBound(object sender, Telerik.Web.UI.GridItemEventArgs e)
        {
            if (e.Item.IsInEditMode)
            {
                   GridEditableItem editableItem = e.Item as GridEditableItem;
                    RadComboBox HardCoded = editableItem["HardCoded"].Controls[0] as RadComboBox;
                  // I've also tried 
 RadComboBox HardCoded = (RadComboBox)e.Item.FindControl("HardCoded");//it also didn't work

            }
    }

在这里,我总是得到object reference not set to a instance of a object的错误,因为它无法找到我的UserControl RadCombo

类似地,如果我想在插入事件中获得值,我无法找到我的组合框,这是我的代码

代码语言:javascript
复制
    protected void RadGrid1_InsertCommand(object sender, Telerik.Web.UI.GridCommandEventArgs e)
    {
  string HardCoded = ((RadComboBox)ii["HardCoded"].FindControl("HardCoded")).SelectedValue;
   }

未设置对象引用的类似异常

EN

回答 1

Stack Overflow用户

发布于 2016-09-08 02:41:48

OnItemDataBound事件处理程序中使用GridEditFormItem,而不是使用GridEditableItem,如下所示:

代码语言:javascript
复制
protected void RadGrid1_OnItemDataBound(object sender, GridItemEventArgs e)
{
    if (e.Item is GridEditFormItem && e.Item.IsInEditMode)//the grid is about to Edit.
    {
        GridEditFormItem item = (GridEditFormItem)e.Item;
        RadComboBox combo = (RadComboBox)item.FindControl("HardCoded");
        combo.SelectedValue = "Something";
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39373734

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档