【发布时间】:2014-09-30 09:05:24
【问题描述】:
我的 C# 代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
public partial class index : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
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();
}
}
}
}
protected void GridView2_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "select")
{
Response.Redirect("xyz.aspx");
}
}
}
问题是,当我单击 Button1 以触发 GridView_RowCommand 时,由于 PostBack,它无法正常工作。 当我从 PageLoad if(IsPostBack) 中删除代码时,它工作正常。 那么我如何解决这个问题。 我正在使用 ASP.Net C# SQL Server 2008。
【问题讨论】:
-
几乎总是当我看到
if(IsPostBack)这实际上应该是一个事件处理程序。处理适当的事件。这将使代码更具可读性和可维护性,并且可能也解决了这个问题。 -
@TimSchmelter 我如何解决这个问题?
-
@TimSchmelter 为什么不发布到your answer to similar question 的链接,这可能会回答这个问题? :)