ImageButton中的无效回发或回调参数 - c#

我的Click事件删除按钮(图像按钮)时遇到问题。
我知道对此还有其他疑问,但是我什么都不懂!

我不明白没有答案!我做了所有其他所有问题中指定的内容!
此页面中使“重定向”到示例的其他事件效果很好!

我很清楚?需要更多细节吗?堆栈跟踪或更多代码?

错误是:

无效的回发或回调参数。使用配置或页面中的启用事件验证。为了安全起见,此功能验证回发或回调事件的参数源自最初呈现它们的服务器控件。如果数据有效且预期,请使用ClientScriptManager.RegisterForEventValidation方法以注册回发或回调数据以进行验证。

我的页面:

<div id="Users" align="center">
        <asp:Button ID="btnCreate" class="btn" Font-Bold="true" runat="server" OnClick="btnCreate_OnClick" />
        <br />
        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" GridLines="None"
            CssClass="table table-bordered table-striped" HeaderStyle-Font-Size="14px">
            <Columns>
                <asp:BoundField DataField="UserName" />
                <asp:BoundField DataField="DisplayName" />
                <asp:BoundField DataField="Email" />
                <asp:BoundField DataField="ProfileName" />
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:ImageButton ID="btnEdit" ImageUrl="style/edit_16.png" runat="server" OnClick="btnEdit_OnClick" />
                        &nbsp;&nbsp;
                        <asp:ImageButton ID="btnDelete" ImageUrl="style/delete_16.png" runat="server" OnClick="btnDelete_OnClick" />
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>
    </div>

我的活动:

protected void btnDelete_OnClick(object sender, EventArgs e)
{
    Button btn = (Button)sender;
    GridViewRow row = (GridViewRow)btn.NamingContainer;
    string UserName = row.Cells[0].Text;

    using (objConexao = new SqlConnection(strStringConexao))
    {
        using (objCommand = new SqlCommand(strDeleteUser, objConexao))
        {
            try
            {
                objConexao.Open();
                objCommand.Parameters.AddWithValue("@UserName", UserName);
                var objDataReader = objCommand.ExecuteReader();
            }
            finally
            {
                objConexao.Close();
            }
        }
    }
}

我的Page_Load和CarregaGrid()

public void CarregaGrid()
{
    var listaRequest = new UsersNDR().ConsultUsers();
    if (listaRequest != null)
    {
        this.GridView1.DataSource = listaRequest;
        this.GridView1.DataBind();

        foreach (GridViewRow row in GridView1.Rows)
        {
            string idioma = CultureInfo.CurrentCulture.TwoLetterISOLanguageName.ToString();

            if (Session["idioma"].ToString() != null)
            {
                idioma = Session["idioma"].ToString();
            }

            ImageButton btnDelete = (ImageButton)row.FindControl("btnDelete");
            ImageButton btnEdit = (ImageButton)row.FindControl("btnEdit");
            btnDelete.ToolTip = Idioma.RetornaMensagem("btnDelete");
            btnEdit.ToolTip = Idioma.RetornaMensagem("btnEdit");
        }
    }
}

protected void Page_Load(object sender, EventArgs e)
{
    string idioma = CultureInfo.CurrentCulture.TwoLetterISOLanguageName.ToString();

    if (Session["idioma"].ToString() != null)
    {
        idioma = Session["idioma"].ToString();
    }

    Idioma.MudaCultura(idioma);
    btnCreate.Text = Idioma.RetornaMensagem("btnCreate");
    GridView1.Columns[0].HeaderText = Idioma.RetornaMensagem("UserName");
    GridView1.Columns[1].HeaderText = Idioma.RetornaMensagem("DisplayName");
    GridView1.Columns[2].HeaderText = Idioma.RetornaMensagem("email");
    GridView1.Columns[3].HeaderText = Idioma.RetornaMensagem("ProfileName");
    GridView1.Columns[4].HeaderText = Idioma.RetornaMensagem("Action");
    CarregaGrid();
}

c#大神给出的解决方案

我相信在每个回发表上重新绑定网格的事实是问题,请尝试将网格更改逻辑包装在!IsPostBack中,如下所示:

protected void Page_Load(object sender, EventArgs e)
{
    if(!IsPostBack)
    {
        string idioma = CultureInfo.CurrentCulture.TwoLetterISOLanguageName.ToString();

        if (Session["idioma"].ToString() != null)
        {
            idioma = Session["idioma"].ToString();
        }

        Idioma.MudaCultura(idioma);
        btnCreate.Text = Idioma.RetornaMensagem("btnCreate");
        GridView1.Columns[0].HeaderText = Idioma.RetornaMensagem("UserName");
        GridView1.Columns[1].HeaderText = Idioma.RetornaMensagem("DisplayName");
        GridView1.Columns[2].HeaderText = Idioma.RetornaMensagem("email");
        GridView1.Columns[3].HeaderText = Idioma.RetornaMensagem("ProfileName");
        GridView1.Columns[4].HeaderText = Idioma.RetornaMensagem("Action");
        CarregaGrid();
    }
}

当回复有时是一个对象有时是一个数组时,如何在使用改造时解析JSON回复? - java

我正在使用Retrofit来获取JSON答复。这是我实施的一部分-@GET("/api/report/list") Observable<Bills> listBill(@Query("employee_id") String employeeID); 而条例草案类是-public static class…

java.net.URI.create异常 - java

java.net.URI.create("http://adserver.adtech.de/adlink|3.0") 抛出java.net.URISyntaxException: Illegal character in path at index 32: http://adserver.adtech.de/adlink|3.0 虽然n…

Mongo汇总 - javascript

我的收藏中有以下文件{ "_id": ObjectId("54490b8104f7142f22ecc97f"), "title": "Sample1", "slug": "samplenews", "cat": …

防止在每次回发中选择LinqDataSource - c#

页面中有一个GridView和LinqDataSource,还有几个按钮,它们的操作与GridView及其LinqDataSource不相关。为什么在这些按钮的每个后退控件上都会调用LinqDataSource的Selecting方法?这正常吗?不需要来自LinqDataSource的这些不需要的db调用。有什么更好的办法吗? c#大神给出的解决方案 您需要…

使用Json.NET反序列化复杂对象 - c#

我需要反序列化从grogle maps api返回的json:{ "destination_addresses": [ "Via Medaglie D'Oro, 10, 47121 Forlì FC, Italia", "Via Torino, 20123 Milano, Italia",…