protected void addServicio(object sender, CommandEventArgs args) { Control oC = ((Control)sender).Parent; int id_servicio = Convert.ToInt32(args.CommandArgument); Orden_trabajo_servicio oOTS = new Orden_trabajo_servicio(); oOTS.Id_servicio = id_servicio; oOTS.PServ = new Servicio() { Nombre = VSLstServ.Find(p => p.Id == id_servicio).Nombre }; oOTS.Ref1 = txt_trafico.Text; DropDownList ddlEtiqueta_tipo = null; try { switch (args.CommandName) { case "precio": GridView grd_pedidos = oC.Parent.FindControl("grd_pedidos") as GridView; foreach (GridViewRow row in grd_pedidos.Rows) { CheckBox chk_pedido = row.Cells[4].FindControl("chk_pedido") as CheckBox; if (chk_pedido.Checked) { oOTS = new Orden_trabajo_servicio(); oOTS.Id_servicio = id_servicio; oOTS.PServ = new Servicio() { Nombre = VSLstServ.Find(p => p.Id == id_servicio).Nombre }; oOTS.Ref1 = txt_trafico.Text; oOTS.Ref2 = row.Cells[1].Text; oOTS.Parcial = Convert.ToInt32(row.Cells[3].Text); oOTS.Piezas = Convert.ToInt32(row.Cells[2].Text.Replace(",", "")); DropDownList ddl_etiqueta_tipo = row.Cells[3].FindControl("ddl_etiqueta_tipo") as DropDownList; oOTS.Id_etiqueta_tipo = Convert.ToInt32(ddl_etiqueta_tipo.SelectedValue); oOTS.PEtiquetaTipo = new Etiqueta_tipo() { Nombre = ddl_etiqueta_tipo.SelectedItem.Text }; oOTS.Id = VSLstOTS.Count + 1; VSLstOTS.Add(oOTS); VSLstEntLiv.Remove(VSLstEntLiv.Find(p => p.Pedido == Convert.ToInt32(oOTS.Ref2))); } } grd_pedidos.DataSource = VSLstEntLiv; grd_pedidos.DataBind(); Panel pnl_pedido = grd_pedidos.Parent.FindControl("pnl_pedido") as Panel; Button btn_add_pedido = pnl_pedido.FindControl("btn_add_pedido") as Button; btn_add_pedido.Enabled = false; break; case "nom": Entrada oE = EntradaCtrl.EntradaByReferencia(txt_referencia.Text); if (oE.Id < 1) { throw new Exception("El pedimento proporcionado no cuenta con una entrada"); } TextBox txt_solicitud = oC.FindControl("txt_solicitud") as TextBox; TextBox txt_sol_pieza = oC.FindControl("txt_sol_pieza") as TextBox; oOTS.Ref2 = txt_solicitud.Text; oOTS.Piezas = Convert.ToInt32(txt_sol_pieza.Text); ddlEtiqueta_tipo = oC.FindControl("ddl_eti_tipo_uva") as DropDownList; txt_solicitud.Text = string.Empty; txt_sol_pieza.Text = string.Empty; oOTS.Id_etiqueta_tipo = Convert.ToInt32(ddlEtiqueta_tipo.SelectedValue); oOTS.PEtiquetaTipo = new Etiqueta_tipo() { Nombre = ddlEtiqueta_tipo.SelectedItem.Text }; oOTS.Id = VSLstOTS.Count + 1; VSLstOTS.Add(oOTS); break; default: break; } grd_ordenesXGuardar.DataSource = VSLstOTS; grd_ordenesXGuardar.DataBind(); } catch (Exception e) { ((MstCasc)this.Master).setError = e.Message; } }