C# asp.net中面板控件中的动态GridView未正确刷新
我是asp.net新手。我在一个面板控件中创建了一个动态gridview。当用户选择一个下拉列表值并单击一个按钮时,此gridview与datatable绑定并正确显示值。但我只想在下拉列表的选择上显示动态gridview。无需单击按钮。当我尝试执行此操作时它没有显示gridview。它绑定了值,但没有显示 html: C代码: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
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();
}