Validate on gridview paging

(ASP.NET)


Hi,

In this article i validate on gridview paging, if validation fails, it won't allow the gridview to move on to the next page.

<head runat="server">
    <title></title>

     <script type="text/javascript">
         function Validate() {

             var txt = document.getElementById('<%=txt_valuerquired.ClientID%>');

             if (txt.value.match(/[<>]/)) {
                 alert("Contains special characters");

                return false;
                
             }
             else
                return true;
         }
     </script>

</head>

<body>
    <form onsubmit="return Validate();" id="form1" runat="server">
    <div>

       <asp:TextBox ID="txt_valuerquired"  runat="server"></asp:TextBox>

       
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="txt_valuerquired"
ErrorMessage="This 
field is required!"></asp:RequiredFieldValidator>
        <br />
        <asp:Button CausesValidation="true" ID="btn_validate" Text="Validate" runat="server" />
     

        <asp:GridView ID="grdvw_products" CausesValidation="true" AllowSorting="True" 
             OnSorting="grdvw_products_Sorting" DataKeyNames="ProductName,ProductID" 
             OnPageIndexChanging="grdvw_products_PageIndexChanging" AllowPaging="True" 
             AutoGenerateColumns="False" runat="server">
             <Columns>
            
            <asp:BoundField ReadOnly="true" SortExpression="ProductID" DataField="ProductID" HeaderText="Product ID" />
            <asp:BoundField ReadOnly="true" SortExpression="ProductName" DataField="ProductName" HeaderText="Product Name" />
                 </Columns>

        </asp:GridView>
    </div>
    </form>
</body>


Codebehind File:-

private const string ASCENDING = " ASC";
        private const string DESCENDING = " DESC";
     

        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                if (!Page.IsPostBack)
                {
                    bindgridView();
                }
            }
            catch (Exception)
            { }
        }

     


        private void bindgridView()
        {
            try
            {


                SqlConnection sqlcon = new SqlConnection(ConfigurationManager.ConnectionStrings["Northwindconstring"].ToString());

                //you want to display the data in gridview in descending order,so i used orderby desc
                string query = "SELECT * FROM Products ORDER BY ProductID DESC";
              

                SqlDataAdapter adptr = new SqlDataAdapter(query, sqlcon);

                DataSet ds = new DataSet();
                adptr.Fill(ds);

                grdvw_products.DataSource = ds;
                grdvw_products.DataBind();
              
            }
            catch (Exception)
            { }
        }

        protected void grdvw_products_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            try
            {
                Page.Validate();

                if (!Page.IsValid) //if validation fails
                    return;
                grdvw_products.PageIndex = e.NewPageIndex;
                bindgridView();
            }
            catch (Exception)
            { }
        }


        protected void grdvw_products_Sorting(object sender, GridViewSortEventArgs e)
        {
            try
            {
                string sortExpression = e.SortExpression;

                if (GridViewSortDirection == SortDirection.Ascending)
                {
                    GridViewSortDirection = SortDirection.Descending;
                    SortGridView(sortExpression, DESCENDING);
                }
                else
                {
                    GridViewSortDirection = SortDirection.Ascending;
                    SortGridView(sortExpression, ASCENDING);
                }
            }
            catch (Exception)
            { }
        }

        public SortDirection GridViewSortDirection
        {
            get
            {
                if (ViewState["sortDirection"] == null) 
                    //by default i set descending,because data is displayed in the desceding order
                    ViewState["sortDirection"] = SortDirection.Descending;

                return (SortDirection)ViewState["sortDirection"];
            }
            set { ViewState["sortDirection"] = value; }
        }

        private void SortGridView(string sortExpression, string direction)
        {

            try
            {
                SqlConnection sqlcon = new SqlConnection(ConfigurationManager.ConnectionStrings["Northwindconstring"].ToString());
                string query = "select * from Products";
                SqlDataAdapter adptr = new SqlDataAdapter(query, sqlcon);

                DataSet ds = new DataSet();
                adptr.Fill(ds);
                DataTable dt = ds.Tables[0];
                DataView dv = new DataView(dt);
                dv.Sort = sortExpression + direction;
                grdvw_products.DataSource = dv;
                grdvw_products.DataBind();
            }
            catch (Exception)
            { }
        }

        protected void cstm_validate_ServerValidate(object source, ServerValidateEventArgs args)
        {
            try
            {
                if (Regex.IsMatch(txt_valuerquired.Text, @"/[<>]/"))
                {
                    args.IsValid = false;
                }
                else
                    args.IsValid = true;

            }
            catch (Exception)
            { }
        }

Image

Ratings


Average Rating: 0.00 by 0 users
Giri Prasad
6/20/2013
6/20/2013
Download PDF

Comments