//fungsi: menghandle ketika row pada gridview akan di edit,
 //set fokus pada isian di gridview
 protected void GvSubBagian_RowEditing(object sender, GridViewEditEventArgs e)
 {
     if (Page.IsValid)
     {
         GvSubBagian.EditIndex = e.NewEditIndex;
         GvSubBagian.DataBind();
         this.ScriptManager1.SetFocus(GvSubBagian.Rows[e.NewEditIndex].Cells[1].FindControl("txtCol1Edit").ClientID);
     }
     else
     {
         e.Cancel = true;
     }
 }
        //fungsi: pindah halaman/index page dari gridview
        protected void txtHalaman_TextChanged(object sender, System.EventArgs e)
        {
            GridViewRow rowPager   = GvSubBagian.BottomPagerRow;
            TextBox     txtHalaman = (TextBox)(rowPager.Cells[0].FindControl("txtHalaman"));

            try
            {
                if (int.Parse(txtHalaman.Text) <= GvSubBagian.PageCount + 1 && int.Parse(txtHalaman.Text) > 0)
                {
                    GvSubBagian.PageIndex = (int.Parse(txtHalaman.Text)) - 1;
                    GvSubBagian.DataBind();
                }
            }
            catch (Exception)
            {
                txtHalaman.Text = (GvSubBagian.PageIndex + 1).ToString();
            }
        }
 //fungsi: refresh gridview ketika filter berubah
 protected void ddlFilterItemChange(object sender, EventArgs e)
 {
     doFiltering();
     GvSubBagian.DataBind();
 }