private void dtgLocalidades_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.EditItem)
            {
                DropDownList ddlProvinciaTabla = (DropDownList)e.Item.FindControl("ddlProvinciaTabla");
                DropDownList ddlLocalidadTabla = (DropDownList)e.Item.FindControl("ddlLocalidadTabla");

                string localidadTabla = ddlLocalidadTabla.ClientID;
                string provinciaTabla = ddlProvinciaTabla.ClientID;

                ddlProvinciaTabla.Attributes.Add("onchange", "BindLocalidadGrilla" + this.ID + "('" + localidadTabla + "'" + "," + "'" + provinciaTabla + "');");
                ddlLocalidadTabla.Attributes.Add("onchange", "ChangeLocalidadGrilla" + this.ID + "('" + localidadTabla + "');");

                SisPackController.LlenarCombos.Provincia(ddlProvinciaTabla, this.TraducirTexto("Combos.ElijaProvincia"));
                SisPackController.LlenarCombos.LlenarStringLocalidades(this.txtLocalidadesGrilla);
                ddlProvinciaTabla.SelectedIndex = 0;

                PlaceHolder phValidProvinciaTabla = (PlaceHolder)e.Item.FindControl("phValidProvinciaTabla");
                phValidProvinciaTabla.Controls.Add(GenerarValidadores.Requerido("ddlProvinciaTabla", this.TraducirTexto("Errores.Obligatorios.Provincia")));

                PlaceHolder phValidLocalidadTabla = (PlaceHolder)e.Item.FindControl("phValidLocalidadTabla");
                phValidLocalidadTabla.Controls.Add(GenerarValidadores.Requerido("ddlLocalidadTabla", this.TraducirTexto("Errores.Obligatorios.Localidad")));

                PlaceHolder phValidKmsDestino = (PlaceHolder)e.Item.FindControl("phValidKmsDestino");
                phValidKmsDestino.Controls.Add(GenerarValidadores.Requerido("txtKmsDestino", this.TraducirTexto("Errores.Obligatorios.KmsDestino")));
                phValidKmsDestino.Controls.Add(GenerarValidadores.Entero("txtKmsDestino", this.TraducirTexto("Errores.Invalidos.KmsDestino")));

                DsKmsLocalidad.DatosRow dr = (DsKmsLocalidad.DatosRow)((DataRowView)e.Item.DataItem).Row;
                ddlProvinciaTabla.SelectedValue = dr.ProvinciaDestinoID == 0 ? string.Empty : dr.ProvinciaDestinoID.ToString();
                ddlLocalidadTabla.SelectedValue = dr.LocalidadDestinoID == 0 ? string.Empty : dr.LocalidadDestinoID.ToString();
            }
        }
        private void dtgLocalidades_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
        {
            this.dsKmsLocalidad = (DsKmsLocalidad)Session["dsKmsLocalidad"];
            DsKmsLocalidad.DatosRow dr = (DsKmsLocalidad.DatosRow) this.dsKmsLocalidad.Datos.Rows[e.Item.DataSetIndex];

            IKmsLocalidad kmsLocalidad = KmsLocalidadFactory.GetKmsLocalidad();

            kmsLocalidad.LocalidadOrigenID  = dr.LocalidadOrigenID;
            kmsLocalidad.LocalidadDestinoID = dr.LocalidadDestinoID;

            try
            {
                kmsLocalidad.Eliminar();
                this.dtgLocalidades.EditItemIndex = -1;
                Session["dsKmsLocalidad"]         = null;
                this.BindGrilla(0);
            }
            catch (Exception ex)
            {
                string mensaje = ex.Message;
                try
                {
                    mensaje = this.TraducirTexto(ex.Message);
                    if (mensaje == "" || mensaje == null)
                    {
                        mensaje = ex.Message;
                    }
                }
                catch (Exception)
                {
                    mensaje = ex.Message;
                }
                ((ErrorWeb)this.phErrores.Controls[0]).setMensaje(mensaje);
            }
        }
        private void dtgLocalidades_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
        {
            if (error)
            {
                ((ErrorWeb)this.phErrores.Controls[0]).setMensaje(this.TraducirTexto("Errores.Invalidos.LocalidadYaVinculada"));
                return;
            }

            /*Page.Validate();
             * if (!Page.IsValid)
             *      return;*/

            this.dsKmsLocalidad = (DsKmsLocalidad)Session["dsKmsLocalidad"];
            DsKmsLocalidad.DatosRow dr = (DsKmsLocalidad.DatosRow) this.dsKmsLocalidad.Datos.Rows[e.Item.DataSetIndex];

            IKmsLocalidad kmsLocalidad = KmsLocalidadFactory.GetKmsLocalidad();

            //LocalidadOrigenID
            kmsLocalidad.LocalidadOrigenID = dr.LocalidadOrigenID;
            //LocalidadDestinoID
            kmsLocalidad.LocalidadDestinoID = dr.LocalidadDestinoID;
            //Kms
            kmsLocalidad.Kms = dr.Kms;
            //Baja, inicalmente en falso
            kmsLocalidad.Baja = false;
            //LocalidadDestinoID en text oculto

            /*TextBox txt = (TextBox) e.Item.FindControl("txtLocalidadDestinoID");
             * txt.Text = dr.LocalidadDestinoID.ToString();*/


            try
            {
                kmsLocalidad.Guardar(this.nuevo);
                this.dtgLocalidades.EditItemIndex = -1;
                Session["dsKmsLocalidad"]         = null;
                this.BindGrilla(0);
            }
            catch (Exception ex)
            {
                string mensaje = ex.Message;
                try
                {
                    mensaje = this.TraducirTexto(ex.Message);
                    if (mensaje == "" || mensaje == null)
                    {
                        mensaje = ex.Message;
                    }
                }
                catch (Exception)
                {
                    mensaje = ex.Message;
                }
                ((ErrorWeb)this.phErrores.Controls[0]).setMensaje(mensaje);
                Session["dsKmsLocalidad"]         = null;
                this.dtgLocalidades.EditItemIndex = -1;
                this.BindGrilla(0);
            }
        }
        private void BindGrilla(int currentPage)
        {
            SisPackController.AdministrarGrillas.Configurar(this.dtgLocalidades, "LocalidadOrigenID", this.CantidadOpciones);
            this.dtgLocalidades.AllowPaging = false;

            if (Session["dsKmsLocalidad"] == null)
            {
                IKmsLocalidad kmsLocalidad = KmsLocalidadFactory.GetKmsLocalidad();
                kmsLocalidad.LocalidadOrigenID = (this.txtLocalidadSelec.Text == "" ? 0 : Convert.ToInt32(this.txtLocalidadSelec.Text));
                this.dsKmsLocalidad            = kmsLocalidad.GetCruceLocalidadesbyLocalidadOrigenID();
            }
            else
            {
                this.dsKmsLocalidad = (DsKmsLocalidad)Session["dsKmsLocalidad"];
                if (this.dtgLocalidades.EditItemIndex != -1)
                {
                    DataGridItem            item = this.dtgLocalidades.Items[this.dtgLocalidades.EditItemIndex];
                    DsKmsLocalidad.DatosRow dr   = (DsKmsLocalidad.DatosRow) this.dsKmsLocalidad.Datos.Rows[item.DataSetIndex];

                    /*try
                     * {*/
                    dr.ProvinciaDestinoDescrip = ((DropDownList)item.FindControl("ddlProvinciaTabla")).SelectedValue == "" ? "0" : Convert.ToString(((DropDownList)item.FindControl("ddlProvinciaTabla")).SelectedValue);
                    dr.LocalidadDestinoDescrip = ((DropDownList)item.FindControl("ddlLocalidadTabla")).SelectedValue == "" ? "0" : Convert.ToString(((DropDownList)item.FindControl("ddlLocalidadTabla")).SelectedValue);
                    dr.LocalidadDestinoID      = (this.txtLocalidadSelecGrilla.Text == "") ? 0 : Convert.ToInt32(this.txtLocalidadSelecGrilla.Text);
                    dr.Kms         = ((TextBox)item.FindControl("txtKmsDestino")).Text == "" ? 0 : Convert.ToDouble(((TextBox)item.FindControl("txtKmsDestino")).Text);
                    dr.ZonaDescrip = ((Label)item.FindControl("lblZonaDestino")).Text == "" ? "0" : Convert.ToString(((Label)item.FindControl("lblZonaDestino")).Text);

                    /*}
                     * catch(Exception)
                     * {
                     *      ((ErrorWeb)this.phErrores.Controls[0]).setMensaje(this.TraducirTexto("Errores.Invalidos.LocalidadYaVinculada"));
                     *      return;
                     * }*/
                }
            }

            Session["dsKmsLocalidad"]            = this.dsKmsLocalidad;
            this.dtgLocalidades.DataSource       = this.dsKmsLocalidad;
            this.dtgLocalidades.CurrentPageIndex = currentPage;
            this.dtgLocalidades.DataBind();
        }
        private void butAgregar_Click(object sender, System.EventArgs e)
        {
            if (error)
            {
                ((ErrorWeb)this.phErrores.Controls[0]).setMensaje(this.TraducirTexto("Errores.Invalidos.LocalidadYaVinculada"));
                return;
            }

            RequiredFieldValidator reqProvincia = (RequiredFieldValidator)this.phValidProvinciaOrigen.FindControl("reqProvincia");

            reqProvincia.Enabled = true;
            reqProvincia.Validate();
            if (!reqProvincia.IsValid)
            {
                return;
            }

            /*RequiredFieldValidator reqLocalidad = (RequiredFieldValidator)this.phValidLocalidadOrigen.FindControl("reqLocalidad");
             * reqLocalidad.Enabled = true;
             * reqLocalidad.Validate();
             * if(!reqLocalidad.IsValid)
             *      return;*/

            if (this.ckTomarLocalidadReferencia.Checked == false)
            {
                if (dtgLocalidades.EditItemIndex == -1)
                {
                    IraUltimaPagina();

                    DsKmsLocalidad          ds = (DsKmsLocalidad)Session["dsKmsLocalidad"];
                    DsKmsLocalidad.DatosRow dr = ds.Datos.NewDatosRow();
                    dr.LocalidadOrigenID       = (this.txtLocalidadSelec.Text == "" ? 0 : Convert.ToInt32(this.txtLocalidadSelec.Text));
                    dr.LocalidadDestinoID      = 0;
                    dr.ProvinciaDestinoDescrip = "";
                    dr.LocalidadDestinoDescrip = "";
                    dr.Baja               = false;
                    dr.Kms                = 0;
                    dr.ZonaDescrip        = "";
                    dr.ProvinciaDestinoID = 0;

                    /*try
                     * {*/
                    ds.Datos.AddDatosRow(dr);

                    /*}
                     * catch(Exception){}*/
                    Session["dsKmsLocalidad"] = ds;

                    int iNewItemIndex = this.dtgLocalidades.Items.Count;

                    /*if (iNewItemIndex >= this.dtgLocalidades.PageSize)
                     * {
                     *      this.dtgLocalidades.CurrentPageIndex++;
                     *      iNewItemIndex = 0;
                     * }*/
                    this.dtgLocalidades.DataSource    = (DsKmsLocalidad)Session["dsKmsLocalidad"];
                    this.dtgLocalidades.EditItemIndex = iNewItemIndex;
                    this.dtgLocalidades.DataBind();
                }
            }
            else if (this.ckTomarLocalidadReferencia.Checked == true)
            {
                RequiredFieldValidator reqProvinciaReferencia = (RequiredFieldValidator)this.phValidProvinciaReferencia.FindControl("reqProvinciaReferencia");
                reqProvinciaReferencia.Enabled = true;
                reqProvinciaReferencia.Validate();
                if (!reqProvinciaReferencia.IsValid)
                {
                    return;
                }

                /*RequiredFieldValidator reqLocalidadReferencia = (RequiredFieldValidator)this.phValidLocalidadReferencia.FindControl("reqLocalidadReferencia");
                 * reqLocalidadReferencia.Enabled = true;
                 * reqLocalidadReferencia.Validate();
                 * if(!reqLocalidadReferencia.IsValid)
                 *      return;*/

                RequiredFieldValidator reqKmsReferencia = (RequiredFieldValidator)this.phValidKmsReferencia.FindControl("reqKmsReferencia");
                reqKmsReferencia.Enabled = true;
                reqKmsReferencia.Validate();
                if (!reqKmsReferencia.IsValid)
                {
                    return;
                }

                RegularExpressionValidator valKmsReferencia = (RegularExpressionValidator)this.phValidKmsReferencia.FindControl("valKmsReferencia");
                valKmsReferencia.Enabled = true;
                valKmsReferencia.Validate();
                if (!valKmsReferencia.IsValid)
                {
                    return;
                }


                IKmsLocalidad kmsLocalidad = KmsLocalidadFactory.GetKmsLocalidad();
                kmsLocalidad.LocalidadOrigenID    = Convert.ToInt32(this.txtLocalidadSelec.Text);
                kmsLocalidad.LocalidadOrigenRefID = Convert.ToInt32(this.txtLocalidadSelecReferencia.Text);
                kmsLocalidad.KmsRef       = Convert.ToInt32(this.txtKmsReferencia.Text);
                kmsLocalidad.FactorAjuste = this.rbFactorAjusteNegativo.Checked ? false : true;
                Session["dsKmsLocalidad"] = (DsKmsLocalidad)kmsLocalidad.GuardarCruceLocalidadesbyLocalidadReferencia();
                this.BindGrilla(0);
            }
        }