更新时出错 [英] Error while updating

查看:55
本文介绍了更新时出错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试学习ASPX并且正在做一个网站(学习目的)



当列表中的名字是时,我在网格视图中有一个员工列表点击我必须将值传递给db并在单独的页面中显示详细信息。

我通过使用这段代码完成了这项工作

I am trying to learn ASPX and am doing a web site (studying purpose)

I have an employee list in grid view when a name in the list is clicked I must pass the value to db and display the details in a separate page.
I did this by using this piece of code

LinkButton lnkCustomerID = sender as LinkButton;
string strCustomerID = lnkCustomerID.CommandArgument;
Response.Redirect("EmployeeDetail.aspx?Parameter=" + strCustomerID);



工作正常。



在详情页面中,我在另一个网格中显示详细信息,我使用下面的代码执行此操作


It worked fine.

In the detail page i am showing the details in another grid and I did this using the code below

SqlCommand cmdCustomerDetails = new SqlCommand("GetEmployee", sqlConnect);
            cmdCustomerDetails.CommandType = CommandType.StoredProcedure;
            cmdCustomerDetails.Parameters.AddWithValue("@ID", employeeId);
            if (sqlConnect.State == ConnectionState.Closed)
                sqlConnect.Open();
            //Create DataReader to read the record
            SqlDataReader dReader = cmdCustomerDetails.ExecuteReader();
            GridView2.DataSource = dReader;
            GridView2.DataBind();
            sqlConnect.Close();



它也有效,但是当我尝试通过点击更新按钮更新值时,这是一个项目模板,如图所示


It worked also, but when I try to update values by clicking the Update Button which is an Item Template as shown

<asp:GridView ID="GridView2" runat="server" CellPadding="4" ForeColor="#333333" GridLines="None"

        AutoGenerateColumns="False">
        <Columns>
            <asp:TemplateField HeaderText="Name">
                <ItemTemplate>
                    <asp:TextBox ID="txtName" runat="server" Text='<%# Eval("name")%>'></asp:TextBox>
                    <asp:RequiredFieldValidator ID="rqdfldName" runat="server" ErrorMessage="Name Cannot Be Empty"

                        ViewStateMode="Disabled" ControlToValidate="txtName" ValidationGroup="Update"></asp:RequiredFieldValidator>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Age">
                <ItemTemplate>
                    <asp:TextBox ID="txtAge" runat="server" Text='<%# Eval("age")%>'></asp:TextBox>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Address">
                <ItemTemplate>
                    <asp:TextBox TextMode="MultiLine" ID="txtAddress" runat="server" Text='<%# Eval("address")%>'></asp:TextBox>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField>
                <ItemTemplate>
                    <asp:Button ID="btnUpdate" runat="server" Text="Update" ValidationGroup="Update"

                        CommandArgument='<%#Eval("id") %>' OnClick="btnUpdate_Click" />
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
        <AlternatingRowStyle BackColor="White" />
        <EditRowStyle BackColor="#7C6F57" />
        <FooterStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
        <HeaderStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
        <PagerStyle BackColor="#666666" ForeColor="White" HorizontalAlign="Center" />
        <RowStyle BackColor="#E3EAEB" />
        <SelectedRowStyle BackColor="#C5BBAF" Font-Bold="True" ForeColor="#333333" />
        <SortedAscendingCellStyle BackColor="#F8FAFA" />
        <SortedAscendingHeaderStyle BackColor="#246B61" />
        <SortedDescendingCellStyle BackColor="#D4DFE1" />
        <SortedDescendingHeaderStyle BackColor="#15524A" />
    </asp:GridView>



我收到此错误


I am getting this error

Invalid postback or callback argument.  Event validation is enabled using <pages enableeventvalidation="true" /> in configuration or <%@ Page EnableEventValidation="true" %> in a page.  For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them.  If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation.



任何人都可以帮助我



我能够通过将该页面的属性设置为false来克服该错误

像这样


Can anyone please help me out

I was able to overcome that error by setting the property of that page to false
like this

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" EnableEventValidation="false" AutoEventWireup="true" CodeFile="EmployeeDetail.aspx.cs" Inherits="EmployeeDetail" %>



但是当我点击更新按钮并找到控件的值时,我没有得到更新值


But when I click the update button and find the values of the controls I am not getting updated values

int empID;
        string age, address, name;
        Button btnUpdateUser = sender as Button;
        TextBox tbName, tbAge, tbAddress;
        SqlConnection sqlConnect;
        try
        {
            tbName = (TextBox)GridView2.Rows[0].FindControl("txtName");
            tbAge = (TextBox)GridView2.Rows[0].FindControl("txtAge");
            tbAddress = (TextBox)GridView2.Rows[0].FindControl("txtAddress");
            sqlConnect = new SqlConnection("server=WINNER-PC\\SQLEXPRESS;integrated security=true;initial catalog=Test");
            if (sqlConnect.State == ConnectionState.Closed)
                sqlConnect.Open();
            empID = Convert.ToInt32(btnUpdateUser.CommandArgument);
            name = tbName.Text;
            age = tbAge.Text;
            address = tbAddress.Text;
            SqlCommand sqlCommand = new SqlCommand("UpdateEmployee", sqlConnect);
            sqlCommand.CommandType = CommandType.StoredProcedure;
            sqlCommand.Parameters.AddWithValue("@ID", empID);
            sqlCommand.Parameters.AddWithValue("@Name", name);
            sqlCommand.Parameters.AddWithValue("@Age", age);
            sqlCommand.Parameters.AddWithValue("@Address", address);
            sqlCommand.ExecuteNonQuery();
            Response.Redirect("Employees.aspx", false);
        }
        catch (Exception ex)
        {
            throw ex;
        }







当网格视图都在同一页面时,我能够更新,但是当我将第二个网格移动到新页面时,更新不起作用..请帮我解决




When both the grid view were in same page i was able to update , but when i moved the second grid to a new page updation is not working .. Please help me out

推荐答案

http://www.codeproject.com/Questions/309426/Error-Invalid-postback-or-callback-argument -when-I [ ^ ]


这篇关于更新时出错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆