应用程序中的服务器错误。
--------------------------------------------------------------------------------回发或回调参数无效。在配置中使用 <pages enableEventValidation="true"/> 或在页面中使用 <%@ Page EnableEventValidation="true" %> 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.ArgumentException: 回发或回调参数无效。在配置中使用 <pages enableEventValidation="true"/> 或在页面中使用 <%@ Page EnableEventValidation="true" %> 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。源错误: 执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。  
请问这是什么问题呢?

解决方案 »

  1.   

    客户端改变了服务器控件的属性,造成viewstate中的数据与服务器不一致.
      

  2.   

    namespace save
    {
    /// <summary>
    /// admin 的摘要说明。
    /// </summary>
    public partial class admin : System.Web.UI.Page
    {

    protected void Page_Load(object sender, System.EventArgs e)
    {
    this.BindToUser();
    this.BindToServer();
    this.BindToFiles();
    } #region Web 窗体设计器生成的代码
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    }

    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {    
    this.DataGrid1.DeleteCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid1_DeleteCommand);
    this.DataGrid2.DeleteCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid2_DeleteCommand);
    this.DataGrid3.DeleteCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid3_DeleteCommand); }
    #endregion protected void LinkButton1_Click(object sender, System.EventArgs e)//管理用户
    {
    this.pl_files.Visible=false;
    this.pl_user.Visible=true;
    this.pl_Server.Visible=false;
    } protected void LinkButton2_Click(object sender, System.EventArgs e)//管理服务器
    {
    this.pl_files.Visible=false;
    this.pl_user.Visible=false;
    this.pl_Server.Visible=true;
    this.DataGrid2.Visible=true;
    } protected void LinkButton3_Click(object sender, System.EventArgs e)
    {
    this.pl_files.Visible=true;
    this.pl_user.Visible=false;
    this.pl_Server.Visible=false;
    this.DataGrid3.Visible=true;
    } protected void Button1_Click(object sender, System.EventArgs e)
    {
    try
    {
    SqlConnection con= db1.CreateCon();
    string str="insert into server (surl,sname) values ('"+this.S_add.Text+"','"+this.S_name.Text+"')";
    SqlCommand cmd=new SqlCommand(str,con);
    cmd.ExecuteNonQuery();
    this.Response.Write("<script>alert('添加成功!');</script>");
    }
    catch
    {
    this.Response.Write("<script>alert('添加失败!');</script>");
    }
    }
    public void BindToUser()
    {
    SqlConnection con=db1.CreateCon();
    DataSet ds= new DataSet();
    SqlDataAdapter sda= new SqlDataAdapter("select * from users",con);
    sda.Fill(ds);
    this.DataGrid1.DataSource=ds;
    this.DataGrid1.DataKeyField="uid";
    this.DataGrid1.DataBind();
    con.Close(); }
    public void BindToServer()
    {
    SqlConnection con=db1.CreateCon();
    DataSet ds= new DataSet();
    SqlDataAdapter sda= new SqlDataAdapter("select * from server",con);
    sda.Fill(ds);
    this.DataGrid2.DataSource=ds;
    this.DataGrid2.DataKeyField="sid";
    this.DataGrid2.DataBind();
    con.Close(); }
    public void BindToFiles()
    {
    SqlConnection con=db1.CreateCon();
    DataSet ds= new DataSet();
    SqlDataAdapter sda= new SqlDataAdapter("select * from files",con);
    sda.Fill(ds);
    this.DataGrid3.DataSource=ds;
    this.DataGrid3.DataKeyField="fid";
    this.DataGrid3.DataBind();
    con.Close(); } private void DataGrid1_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    SqlConnection delcon= db1.CreateCon();
    int Id=int.Parse(this.DataGrid1.DataKeys[e.Item.ItemIndex].ToString());
    SqlCommand delcmd1= new SqlCommand("delete from users where uid="+Id,delcon);
    try
    {
    delcmd1.ExecuteNonQuery();
    this.Response.Write("<script>alert('删除成功!');</script>");
    }
    catch
    {
    this.Response.Write("<script>alert('删除失败!');</script>");
    }
    } private void DataGrid2_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    SqlConnection delcon2= db1.CreateCon();
    int Id=int.Parse(this.DataGrid2.DataKeys[e.Item.ItemIndex].ToString());
    SqlCommand delcmd2= new SqlCommand("delete from server where sid="+Id,delcon2);
    try
    {
    delcmd2.ExecuteNonQuery();
    this.Response.Write("<script>alert('删除成功!');</script>");
    }
    catch
    {
    this.Response.Write("<script>alert('删除失败!');</script>");
    }
    } private void DataGrid3_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    SqlConnection delcon3= db1.CreateCon();
    int Id=int.Parse(this.DataGrid3.DataKeys[e.Item.ItemIndex].ToString());
    SqlCommand delcmd3= new SqlCommand("delete from files where fid="+Id,delcon3);
    try
    {
    delcmd3.ExecuteNonQuery();
    this.Response.Write("<script>alert('删除成功!');</script>");
    }
    catch
    {
    this.Response.Write("<script>alert('删除失败!');</script>");
    }
    }
    }
    }
    这样有什么错误么?
      

  3.   

    this.BindToUser();
    this.BindToServer();
    this.BindToFiles();===>if(!this.IsPostBack)
    {
     this.BindToUser();
    this.BindToServer();
    this.BindToFiles();
    }然后在删除事件中调相应的重新绑定的方法
      

  4.   

    <P align="center">
    <asp:LinkButton id="LinkButton1" runat="server" Font-Size="X-Small" onclick="LinkButton1_Click">管理用户</asp:LinkButton>&nbsp;
    <asp:LinkButton id="LinkButton2" runat="server" Font-Size="X-Small" onclick="LinkButton2_Click">管理IPServer</asp:LinkButton>&nbsp;
    <asp:LinkButton id="LinkButton3" runat="server" Font-Size="X-Small" onclick="LinkButton3_Click">管理文件</asp:LinkButton></P>这点击这些button的时候就会发生回调错误,是这些写错了么?
    protected void LinkButton1_Click(object sender, System.EventArgs e)//管理用户
    {
                try
                {
                    this.pl_files.Visible = false;
                    this.pl_user.Visible = true;
                    this.pl_Server.Visible = false;
                }
                catch (Exception Ex)
                {
                    Response.Write(Ex.ToString());
                }
    }