请教大家一个问题,我在aspxGridviw中的EditItemTemplate中放了一个AspxCombobox
现在想对AspxCombobox赋值,总提示“未将对象引入的实例” ASPxComboBox cb1 = gv1.FindEditRowCellTemplateControl(gv1.Columns["category1"] as GridViewDataColumn, "cb1") as ASPxComboBox;
        string docCat1 = "select id,number,name from d_category_father";
        DataSet ds = d1.getDataSet(docCat1);
        cb1.DataSource = d1.getDataSet(docCat1);
        cb1.DataBind(); 这一行 cb1.DataSource = d1.getDataSet(docCat1);总是提示“未将对象引入的实例”

解决方案 »

  1.   

    d1.getDataSet(docCat1); 这个传入了 null
      

  2.   

    回楼上两位:
    zengzhan:d1.getDataSet(docCat1) 这个就是ds。caozhy:d1.getDataSet(docCat1),这个绝对是有值的,我单步调试跟踪过。
      

  3.   

    那你调试下你的 cb1是否为null
      

  4.   

    whatisma:cb1是为空,所以我怀疑是不是没有找到?
      

  5.   

                                    <EditItemTemplate>
                                        <dxe:ASPxComboBox ID="cb1" runat="server" ValueField="id" 
                                            TextField="name" TextFormatString="{1}" CssPostfix="Aqua" >
                                                 <Columns>
                                                    <dxe:ListBoxColumn FieldName="number" Caption="编号" Width="40px" />
                                                    <dxe:ListBoxColumn FieldName="name" Caption="一级级类目" />
                                                </Columns>
                                        </dxe:ASPxComboBox>
                                    </EditItemTemplate>
      

  6.   

    你的 FindEditRowCellTemplateControl是写在什么事件里的?
      

  7.   

    gv1_HtmlRowCreated写在这个事件里面
      

  8.   

    这个是ASPX里面的文件
    <dxwgv:GridViewDataTextColumn FieldName="category1" Caption="category1" >    
                                    <EditItemTemplate>
                                        <dxe:ASPxComboBox ID="cb1" runat="server" ValueField="id" 
                                            TextField="name" TextFormatString="{1}" CssPostfix="Aqua" Width="100%" >
                                                 <Columns>
                                                    <dxe:ListBoxColumn FieldName="number" Caption="编号" Width="40px" />
                                                    <dxe:ListBoxColumn FieldName="name" Caption="一级类目" />
                                                </Columns>
                                        </dxe:ASPxComboBox>
                                    </EditItemTemplate>
                                </dxwgv:GridViewDataTextColumn> 
      

  9.   

        ((CheckBox)GridView1.Rows[e.RowIndex].FindControl("你找的控件ID")).Checked = true;
    是找GridView1还是你用的第三方控件么? 我没看到你说的事件?
      

  10.   

    写在HtmlRowCreated事件里应该是可以的检查下事件参数ASPxGridViewTableRowEventArgs,判断下创建的是否为编辑列,像这样:if (e.RowType != GridViewRowType.EditForm)
       return;如果你是用行内编辑,则类型是GridViewRowTypeInlineEdit
      

  11.   

    if (e.RowType != GridViewRowType.EditForm) 
      return; 
    --------------------
    回楼上,这两句能执行,那怎么解决我的问题啊,谢谢!!
      

  12.   

    我测试过你的代码,可以取到cb1的值,代码是这样的: void gv1_HtmlRowCreated(object sender, ASPxGridViewTableRowEventArgs e)
    {
    if (e.RowType != GridViewRowType.EditForm)
    return; ASPxComboBox cb1 = gv1.FindEditRowCellTemplateControl(gv1.Columns["category1"] as GridViewDataColumn, "cb1") as ASPxComboBox;
    ...
    }
    你的代码改成上面这样还是取不到值吗?还不行的话把完整的代码贴出来看