Click here to Skip to main content
15,890,282 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
See more:
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
C#
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
C#
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.NET
<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.

Can anyone please help me out

I was able to overcome that error by setting the property of that page to false
like this
ASP.NET
<%@ 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
C#
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
Posted
Updated 7-Dec-12 22:17pm
v4

1 solution

 
Share this answer
 
Comments
Arjun Menon U.K 8-Dec-12 3:22am    
Why i am nt getting the entered values from textbox while updating?
Arjun Menon U.K 8-Dec-12 4:05am    
Is there something wrong with the way am doing??

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900