怎么會執行兩次呢?
如下,當我點擊一下的時候,下面的代碼會執行兩次,暈    protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        if (e.CommandName == "ISee")
        {
            string[] Arg = e.CommandArgument.ToString().Split(new string[] { ";" }, StringSplitOptions.None);
            ISeeScheduleAdd(Arg[0], Arg[1]);       
        }    }

解决方案 »

  1.   

    看看页面哪里有刷新的方法
    前台、后台都看看
    跟踪一下Pageload,是不是也走两次
      

  2.   

    是不是Page_Load中少了
    if (!IsPostBack)
    {
    }
      

  3.   

    找到原因了奇怪,如果在過程A中調用過程B,過程B就會執行兩次,跟Page_Load無關  直接將過程B中的代碼寫到過程A中就正常了,為什么?    protected void ISeeScheduleAdd(string IOrdNo, string OrdState)
        {
            //SqlParameterCollection myParametersColl = (new SqlCommand()).Parameters;
            //myParametersColl.Add("@iordno", SqlDbType.NVarChar ,7).Value = IOrdNo ;
            //myParametersColl.Add("@ordstate", SqlDbType.NVarChar ,10).Value = OrdState  ;
            //myParametersColl.Add("@username", SqlDbType.NVarChar ,10).Value =User.Identity.Name ;        //RemoteDataAccess.ExecutePorcedure("up_ISeeScheduleAdd", myParametersColl);        
            //myParametersColl.Clear();   }
        protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            
            if (e.CommandName == "ISee")
            {
                string[] Arg = e.CommandArgument.ToString().Split(new string[] { ";" }, StringSplitOptions.None);
                //ISeeScheduleAdd(Arg[0], Arg[1]);                   SqlParameterCollection myParametersColl = (new SqlCommand()).Parameters;
                myParametersColl.Add("@iordno", SqlDbType.NVarChar, 7).Value = Arg[0];
                myParametersColl.Add("@ordstate", SqlDbType.NVarChar, 10).Value = Arg[1];
                myParametersColl.Add("@username", SqlDbType.NVarChar, 10).Value = User.Identity.Name;            RemoteDataAccess.ExecutePorcedure("up_ISeeScheduleAdd", myParametersColl);            myParametersColl.Clear();        }    }
      

  4.   

    暈,還是有問題
    有時執行一次,有時執行兩次,我沒有哪裡做了刷新的動作啊點擊的是 ImageButton 控件
      

  5.   

    加了 !Page.IsPostBack 還是一樣又是submit,又有onclick
    =》沒有onclick,只是submit啊
      

  6.   

    奇怪啊,跟蹤了一下,是寫數據庫這段代碼出問題,如果不寫數據庫,就只執行一次 難道是寫數據庫引起的嗎,搞不清,單獨在SQL查詢器裡執行那個存儲過程是正常的
        protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
        {        if (e.CommandName == "ISee" )
            {
                //string[] Arg = e.CommandArgument.ToString().Split(new string[] { ";" }, StringSplitOptions.None);            //SqlParameterCollection myParametersColl = (new SqlCommand()).Parameters;
                //myParametersColl.Add("@iordno", SqlDbType.NVarChar, 7).Value = Arg[0];
                //myParametersColl.Add("@ordstate", SqlDbType.NVarChar, 10).Value = Arg[1];
                //myParametersColl.Add("@username", SqlDbType.NVarChar, 10).Value = User.Identity.Name;            //RemoteDataAccess.ExecutePorcedure("up_ISeeScheduleAdd", myParametersColl);            //myParametersColl.Clear();            Button1.Text = Button1.Text + "1";
            }
      

  7.   

    點擊一下 imagebutton ,會引起 
        protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "ISee" )
                Button1.Text = Button1.Text + "1";
        }
    這個過程執行兩次,為什么?跟主頁模板有關嗎
      

  8.   

    倒,居然進MS的BUG
    http://edu.itbulo.com/200611/109597.htm
      

  9.   

    查一下页面指令:<% Page AutoEventWireup="false"%>
      

  10.   

    if (Request["x"] == null && Request["y"] == null)
                Response.End(); 就好了MS's bug:通过google搜索发现有不少人遇到了此问题,确定是asp.net的bug。点击按钮会向iis发两次请求,第一次比第二次少八个字节,导致第一次请求不成功,接着会重新发一次
    判断图片的坐标,如果其坐标是null,则是第一次请求,因为第一次请求无效,结束他。
      

  11.   

    你那篇文章说ie7也有问题,我测试了ie7没有发现这个问题。我的版本 7.0.5730.11。
      

  12.   

    我在用户控件的Page_Load里加入的代码,也要执行两遍
      

  13.   

    樓上的 Page_Load 加 if (!IsPostBack)