本文介绍了在ASP.NET中的Gridview页脚模板中填充下拉列表时出错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在gridview页脚模板中实现级联下拉列表。我的代码如下。我收到一条错误消息对象引用未设置为对象的实例。



I want to implement a cascading dropdownlist in a gridview footer template. My code is given below. I am getting an error message "Object reference not set to an instance of an object."

public void GridView1_RowCreated(Object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.Footer) {
            DropDownList ddlGrandParent = (DropDownList)e.Row.FindControl("ddlGrandParentService");

                ddlGrandParent.DataSource = GetGrandParentService();
                ddlGrandParent.DataValueField = "GrandParentServiceID";
                ddlGrandParent.DataTextField = "GrandService";
                ddlGrandParent.DataBind();

                //ddlGrandParent.SelectedValue = GridView1.DataKeys[e.Row.RowIndex].Value.ToString();

                DropDownList ddlParent = (DropDownList)e.Row.FindControl("ddlParentService");

          //**Getting error "Object reference not set to an instance of an object."**

           ddlParent.DataSource = GetParentServiceByGrandParent  (Convert.ToInt32((GridView1.FooterRow.FindControl
        ("ddlGrandParentService") as DropDownList).SelectedItem.Value));


                ddlParent.DataValueField = "ParentServiceId";
                ddlParent.DataTextField = "ParentServiceName";
                ddlParent.DataBind();

}
}


private List<GrandParentService> GetGrandParentService()
    {

        List<GrandParentService> all = new List<GrandParentService>();
        using (ABCEntities dc = new ABCEntities())
        {
            all = dc.GrandParentService.ToList();
        }
        return all;
    }


private List<ParentService> GetParentServiceByGrandParent(int grandParentID)
    {

        List<ParentService> all = new List<ParentService>();
        using (ABCEntities dc = new ABCEntities())
        {
            all = dc.ParentService.Where(a => a.GrandParentServiceID.Equals(grandParentID)).ToList();
        }
        return all;

    }







请帮助我。在此先感谢。




Please help me. Thanks in advance.

推荐答案

DropDownList ddlParent = (DropDownList)GridView1.Rows[e.NewIndex].FindControl("ddlParentService");



它会自动将dropdownlist ddlparentservice分配给ddlparent对象,然后将数据源分配给ddlparent对象。


It will automatically assign dropdownlist ddlparentservice to ddlparent object then assign datasource to ddlparent object.


这篇关于在ASP.NET中的Gridview页脚模板中填充下拉列表时出错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-25 07:05