yuezhonghu

悠然现南山...
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

容器中的ImageButton控件的BUG

Posted on 2008-01-18 16:52  .狐狸血.  阅读(162)  评论(0编辑  收藏  举报

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=e");
            e.Row.Attributes.Add("onmouseover", "e=this.style.backgroundColor;this.style.backgroundColor=\"" + "#EFF3F7" + "\"");

            ImageButton Ibtn = (ImageButton)e.Row.Cells[3].Controls[0];
            Ibtn.Attributes.Add("onclick", "javascript:if(confirm('删除角色后无法恢复,是否确认删除?')){} else{ return false;}");
        }
    }

    protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        string ID = GridView1.DataKeys[int.Parse(e.CommandArgument.ToString())].Value.ToString();

        if (e.CommandName.Equals("updateCommand"))
        {
            Response.Redirect("system_roleUpdate.aspx?ID=" + ID);
        }
        if (e.CommandName.Equals("deleteCommand"))
        {
            string SQL1 = "DELETE FROM td_sys_role WHERE I_ID=@I_ID";
            SqlParameter[] parameter ={
                new SqlParameter("@I_ID",SqlDbType.Int,4)
            };
            parameter[0].Value = ID;
            int num = LiTianPing.SQLServerDAL.DbHelperSQL.ExecuteSql(SQL1, parameter);
            if (num > 0)
            {     
                BoundToDataView();
                JScript.DialogBox("删除操作成功!", "system_rolelist.aspx");

            }
        }
    }
这样,在删除点击ImageButton控件的时候会两次调用RowCommand函数
网上都说是微软的BUG,等待补丁的发布;郁闷!
解决办法就是把ImageButton 换成 Button 控件或其他形式按钮 如:LinkButton等...

补丁等待中........