我现在在用ASP.NET(C#)开发一个项目,在操作DataGrid里的设置的CheckBox时,整个CPU都被占用,而又一直运行不到我在代码里设置的断点,要等几分钟才能跳到代码里继续运行,我因为第一次使用C#开发ASP.NET的程序,所以不知道是怎么回事?而运行页面的跳转又一切正常,包括修改、保存都很正常,唯独使用DataGrid里附加的选择、删除等操作时就出现以上情况,我不知道CPU被占用的这段时间在运行什么代码?请知道的朋友告知,万分感谢!!!

解决方案 »

  1.   

    我点击“全部选择”按纽后,就没有执行按纽下的代码,CPU就一直被占用,所以不知道CPU在运行什么代码!
      

  2.   

    DataGrid中的数据是不是很多?
      

  3.   

    public class ScoreCS : System.Web.UI.Page
    {
    protected System.Web.UI.WebControls.DataGrid ItemGrid;
    protected System.Web.UI.WebControls.Label lblError;
    protected System.Web.UI.WebControls.ImageButton btnUpdate;
    protected System.Web.UI.WebControls.ImageButton btnDel;

    private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    if(!Page.IsPostBack)
    {
    if(Object.Equals(Session["UserCode"],null))
    {
    Response.Redirect("LeftLogin.aspx");
    return;
    }
    else
    if ((bool)Session["XTWH"]==false)
    {
    Session["memo"] = "您没有权限执行这类操作!";
    Response.Redirect("NoRight.aspx");
    return;
    }
    ViewState["dsScoreSet"] = SunShine.DoctorStudy.ScoreClass.GetScore(Session["UserDept"].ToString());
    LoadData();
    btnUpdate.Attributes.Add("onClick","javascript:return confirm('你确实要初审当前选择的学分记录吗?')"); 
    btnDel.Attributes.Add("onClick","javascript:return confirm('你确实要删除当前选择的学分记录吗?')"); 
    }
    } private void LoadData()
    {
    DataSet ds = (DataSet)ViewState["dsScoreSet"]; 
    ItemGrid.DataSource = ds;
    this.DataBind();
    } private void CheckAll(bool Flag)
    {
    CheckBox cb = new CheckBox();
    int i,j = ItemGrid.Items.Count; 
    for(i=0;i<j;i++)
    {
    cb = (CheckBox)ItemGrid.Items[i].Cells[0].FindControl("CheckBox1");
    cb.Checked = Flag;
    }
    } #region Web 窗体设计器生成的代码
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    }

    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {    
    this.btnDel.Click += new System.Web.UI.ImageClickEventHandler(this.Imagebutton2_Click);
    this.ItemGrid.ItemCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.ItemGrid_ItemCommand);
    this.ItemGrid.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.ItemGrid_PageIndexChanged);
    this.Load += new System.EventHandler(this.Page_Load); }
    #endregion private void btnUpdate_Click(object sender, System.Web.UI.ImageClickEventArgs e)
    {
    CheckBox cb = new CheckBox();
    string s_SQL = ""; int i,j = ItemGrid.Items.Count;
    for(i=0;i<j;i++)
    {
    cb = (CheckBox)ItemGrid.Items[i].Cells[0].FindControl("CheckBox1");
    if(cb.Checked)
    {
    if (s_SQL=="")
    {
    s_SQL = "SerialNo="+ItemGrid.Items[i].Cells[2].Text.ToString();
    }
    else
    {
    s_SQL = s_SQL+" or SerialNo="+ItemGrid.Items[i].Cells[2].Text.ToString();
    }
    }
    }
    if (s_SQL=="")
    {
    lblError.Text = "请先选择要初审的学分记录!";
    return;
    }

    try
    {
    SunShine.DoctorStudy.ScoreClass sc = new SunShine.DoctorStudy.ScoreClass();
    sc.SHScoreRec(s_SQL,false,Session["UserDept"].ToString(),Session["UserCode"].ToString());
    //((DataSet)ViewState["dsScoreSet"]).Clear();
    //ViewState["dsScoreSet"] = SunShine.DoctorStudy.ScoreClass.GetScore(Session["UserDept"].ToString());
    Response.Redirect("ScoreCS.aspx");
    }
    catch(Exception er)
    {
    throw new Exception(er.Message);
    }
    } private void ItemGrid_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    switch(e.CommandName)
    {
    case "CheckAll":
    CheckAll(true);
    break;
    case "ClearAll":
    CheckAll(false);
    break;
    }
    } private void Imagebutton2_Click(object sender, System.Web.UI.ImageClickEventArgs e)
    {
    CheckBox cb = new CheckBox();
    string s_SQL = ""; int i,j = ItemGrid.Items.Count;
    for(i=0;i<j;i++)
    {
    cb = (CheckBox)ItemGrid.Items[i].Cells[0].FindControl("CheckBox1");
    if(cb.Checked)
    {
    if (s_SQL=="")
    {
    s_SQL = "SerialNo="+ItemGrid.Items[i].Cells[2].Text.ToString();
    }
    else
    {
    s_SQL = s_SQL+" or SerialNo="+ItemGrid.Items[i].Cells[2].Text.ToString();
    }
    }
    }
    if (s_SQL=="")
    {
    lblError.Text = "请先选择要删除的学分记录!";
    return;
    }

    try
    {
    SunShine.DoctorStudy.ScoreClass sc = new SunShine.DoctorStudy.ScoreClass();
    sc.DelScoreRec(s_SQL);
    //((DataSet)ViewState["dsScoreSet"]).Clear();
    //ViewState["dsScoreSet"] = SunShine.DoctorStudy.ScoreClass.GetScore(Session["UserDept"].ToString());
    Response.Redirect("ScoreCS.aspx");
    }
    catch(Exception er)
    {
    throw new Exception(er.Message);
    }
    } private void ItemGrid_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
    {
    ItemGrid.CurrentPageIndex = e.NewPageIndex;
    LoadData();
    } }
      

  4.   

    我只想能实现全部选择或全部取消选择在DataGrid里的数据列表!可当我点及“全部选择”或“全部取消”按纽时,CPU就一直被aspnet_xp的线程占用,按纽下对应的代码也不执行,这到底是为什么?