簡體   English   中英

ImageButton中無效的回發或回調參數

[英]Invalid postback or callback argument in ImageButton

我的Click事件刪除按鈕(圖像按鈕)時遇到問題。 我知道對此還有其他疑問,但是我什么都不懂!

我不明白沒有答案! 我做了所有其他所有問題中指定的內容! 此頁面中使“重定向”為示例的其他事件效果很好!

我很清楚? 需要更多細節嗎? 堆棧跟蹤或更多代碼?

錯誤是:

無效的回發或回調參數。 使用配置或頁面中的<%@頁面EnableEventValidation =“ true”%>啟用事件驗證。 為了安全起見,此功能驗證回發或回調事件的參數源自最初呈現它們的服務器控件。 如果數據有效且預期,請使用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();
}

我相信在每個回發表上重新綁定網格的事實是問題,請嘗試將網格更改邏輯包裝在!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();
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM