C# asp.net中面板控件中的动态GridView未正确刷新

C# asp.net中面板控件中的动态GridView未正确刷新,c#,asp.net,gridview,panel,C#,Asp.net,Gridview,Panel,我是asp.net新手。我在一个面板控件中创建了一个动态gridview。当用户选择一个下拉列表值并单击一个按钮时,此gridview与datatable绑定并正确显示值。但我只想在下拉列表的选择上显示动态gridview。无需单击按钮。当我尝试执行此操作时它没有显示gridview。它绑定了值,但没有显示 html: C代码: public void dynamicgridview() { GridView grdv = new GridView(); grdv.AutoGen

我是asp.net新手。我在一个面板控件中创建了一个动态gridview。当用户选择一个下拉列表值并单击一个按钮时,此gridview与datatable绑定并正确显示值。但我只想在下拉列表的选择上显示动态gridview。无需单击按钮。当我尝试执行此操作时它没有显示gridview。它绑定了值,但没有显示

html:

C代码:

public void dynamicgridview()
{
    GridView grdv = new GridView();
    grdv.AutoGenerateColumns = false;
    DataSet ds = new DataSet();
    DataTable dt = new DataTable();
    BL.ESSBL bl = new BL.ESSBL();
    ds = GetEssDetails();//getting datatable
    if (ds != null &&ds.Tables.Count>0 && ds.Tables[0].Rows.Count > 0)
    {
        dt = ds.Tables[0];
        grdv.RowDataBound += new GridViewRowEventHandler(grdv_RowDataBound);                
        grdv.DataSource = null;
        grdv.DataBind();
        grdv.Columns.Clear();

        for (int i = 0; i < dt.Columns.Count; i++)
        {
            BoundField boundfield = new BoundField();
            boundfield.DataField = dt.Columns[i].ColumnName.ToString();
            boundfield.HeaderText = dt.Columns[i].ColumnName.ToString();
            grdv.Columns.Add(boundfield);

        }
        TemplateField tmf = new TemplateField();
        grdv.Columns.Add(tmf);
        tmf = new TemplateField();
        grdv.Columns.Add(tmf);              
        grdv.DataSource = dt;
        grdv.DataBind();
        grdv.Width = 600;
        grdv.CellPadding = 10;
        grdv.CellSpacing = 2;
        grdv.Attributes["class"] = "Shorter";
        pnlupdate.Controls.Add(grdv);

    }
}

protected void btnGO_Click(object sender, EventArgs e)//its working
{
    ddlprocessid = Convert.ToInt32(Session["ddlprocessid"]);
    dynamicgridview();
}

protected void ddlProcess_SelectedIndexChanged(object sender, EventArgs e)//not   working
{
    dynamicgridview(); 
    Clear();
}

在按钮上单击它可以正常工作。但在下拉菜单上,选择更改为不工作。我想刷新面板或其他东西。请帮助我。

下拉菜单的自动回写是否正确?@Kumar Ya仅正确。您的下拉菜单在哪里??我在代码中找不到它above@kumar我用dropdownwell更新了代码,我测试了你的代码,它在这里似乎工作得很好。。。dropdown正在正确执行回发。gridview代码可能有问题。请调试
public void dynamicgridview()
{
    GridView grdv = new GridView();
    grdv.AutoGenerateColumns = false;
    DataSet ds = new DataSet();
    DataTable dt = new DataTable();
    BL.ESSBL bl = new BL.ESSBL();
    ds = GetEssDetails();//getting datatable
    if (ds != null &&ds.Tables.Count>0 && ds.Tables[0].Rows.Count > 0)
    {
        dt = ds.Tables[0];
        grdv.RowDataBound += new GridViewRowEventHandler(grdv_RowDataBound);                
        grdv.DataSource = null;
        grdv.DataBind();
        grdv.Columns.Clear();

        for (int i = 0; i < dt.Columns.Count; i++)
        {
            BoundField boundfield = new BoundField();
            boundfield.DataField = dt.Columns[i].ColumnName.ToString();
            boundfield.HeaderText = dt.Columns[i].ColumnName.ToString();
            grdv.Columns.Add(boundfield);

        }
        TemplateField tmf = new TemplateField();
        grdv.Columns.Add(tmf);
        tmf = new TemplateField();
        grdv.Columns.Add(tmf);              
        grdv.DataSource = dt;
        grdv.DataBind();
        grdv.Width = 600;
        grdv.CellPadding = 10;
        grdv.CellSpacing = 2;
        grdv.Attributes["class"] = "Shorter";
        pnlupdate.Controls.Add(grdv);

    }
}

protected void btnGO_Click(object sender, EventArgs e)//its working
{
    ddlprocessid = Convert.ToInt32(Session["ddlprocessid"]);
    dynamicgridview();
}

protected void ddlProcess_SelectedIndexChanged(object sender, EventArgs e)//not   working
{
    dynamicgridview(); 
    Clear();
}