C# 回发时的GridView行命令
我的C#代码: 问题是,当我点击按钮1启动GridView_row命令时,由于回发,它不起作用。 当我从PageLoad中删除代码时,如果(IsPostBack)工作正常。 所以我如何解决这个问题。C# 回发时的GridView行命令,c#,asp.net,gridview,C#,Asp.net,Gridview,我的C#代码: 问题是,当我点击按钮1启动GridView_row命令时,由于回发,它不起作用。 当我从PageLoad中删除代码时,如果(IsPostBack)工作正常。 所以我如何解决这个问题。 我使用的是ASP.Net C#SQL Server 2008。正如Michael Moore指出的,这是一个相关的问题: 几乎总是当我看到if(IsPostBack)时,它实际上应该是一个事件处理程序。处理适当的事件。这将使代码更具可读性和可维护性,可能也解决了这个问题 因此,如果您希望触发事件,请
我使用的是ASP.Net C#SQL Server 2008。正如Michael Moore指出的,这是一个相关的问题:
几乎总是当我看到
if(IsPostBack)
时,它实际上应该是一个事件处理程序。处理适当的事件。这将使代码更具可读性和可维护性,可能也解决了这个问题
因此,如果您希望触发事件,请不要在回发时在Page\u Load
中进行DataBind
。而是将事件处理到DataBind
的GridView
。然后首先触发row命令
在这种情况下,很难建议您应该处理什么类型的事件,因为情况似乎很复杂。也许您应该添加另一个按钮,并应用click事件处理程序中的逻辑。另一种方法是处理所有相关控件的所有事件
因此,让所有复选框使用相同的事件处理程序CheckBox\u CheckedChanged
,并从所有其他相关控件调用DataBind
,例如从RadioButtonList
sSelectedIndexChanged
-事件:
protected void CheckBox_CheckedChanged(Object sender, EventArgs e)
{
DataBind();
}
private void DataBind()
{
if (CheckBox1.Checked == false && CheckBox2.Checked == false && CheckBox3.Checked == false && CheckBox4.Checked == false && CheckBox5.Checked == false && RadioButtonList1.SelectedItem == null)
{
GridView2.DataSource = SqlDataSource5;
GridView2.DataBind();
}
else
{
if (RadioButtonList1.SelectedItem == null)
{
GridView2.DataSource = SqlDataSource4;
GridView2.DataBind();
}
else
{
GridView2.DataSource = SqlDataSource6;
GridView2.DataBind();
}
}
}
几乎总是当我看到
if(IsPostBack)
时,它实际上应该是一个事件处理程序。处理适当的事件。这将使代码更具可读性和可维护性,并且可能也解决了这个问题。@TimSchmelter我是如何解决这个问题的?@TimSchmelter为什么不发布到这个链接,它可能会回答这个问题?:)
protected void CheckBox_CheckedChanged(Object sender, EventArgs e)
{
DataBind();
}
private void DataBind()
{
if (CheckBox1.Checked == false && CheckBox2.Checked == false && CheckBox3.Checked == false && CheckBox4.Checked == false && CheckBox5.Checked == false && RadioButtonList1.SelectedItem == null)
{
GridView2.DataSource = SqlDataSource5;
GridView2.DataBind();
}
else
{
if (RadioButtonList1.SelectedItem == null)
{
GridView2.DataSource = SqlDataSource4;
GridView2.DataBind();
}
else
{
GridView2.DataSource = SqlDataSource6;
GridView2.DataBind();
}
}
}