protected void Page_Load(object sender, EventArgs e) { Master.Page.Title = "... defina un filtro y haga un click en Aplicar Filtro para aplicarlo"; ErrMessage_Span.InnerHtml = ""; ErrMessage_Span.Style["display"] = "none"; if (!User.Identity.IsAuthenticated) { FormsAuthentication.SignOut(); return; } if (!Page.IsPostBack) { // usamos una clase para construir una lista con las compañías (Contab) que se han asignado al usuario ConstruirListaCompaniasAsignadas listaCiasContabAsignadas = new ConstruirListaCompaniasAsignadas(); this.Sql_CuentasBancarias_Cia_Numeric.DataSource = listaCiasContabAsignadas.GetListaCompaniasAsignadas(); // pareciera que si no hacemos el databind para los listboxes aqu�, la clase que regresa el state // encuentra estos controles sin sus datos this.Sql_CuentasBancarias_Cia_Numeric.DataBind(); this.Sql_CuentasBancarias_CuentaInterna_Numeric.DataBind(); Sql_CuentasBancarias_CuentaInterna_Numeric.DataBind(); // intentamos recuperar el state de esta página; en general, lo intentamos con popups filtros if (!(Membership.GetUser().UserName == null)) { KeepPageState MyKeepPageState = new KeepPageState(Membership.GetUser().UserName, this.GetType().Name.ToString()); MyKeepPageState.ReadStateFromFile(this, this.Controls); MyKeepPageState = null; } HtmlGenericControl MyHtmlH2; MyHtmlH2 = (HtmlGenericControl)Master.FindControl("PageTitle_TableCell"); if (!(MyHtmlH2 == null)) { MyHtmlH2.InnerHtml = "... indique un criterio de selección y haga un click en <b><em>Aplicar filtro</em></b>"; } } }
private void SeleccionarCuentasBancarias() { // para mostrar en el ListBox de cuentas bancarias solo las que correspondan a las cias y monedas // seleccionadas String MyWhereString = ""; foreach (ListItem MyListItem in Sql_CuentasBancarias_Cia_Numeric.Items) { if (MyListItem.Selected) { if (MyWhereString == "") { MyWhereString = " CuentasBancarias.Cia In (" + MyListItem.Value; } else { MyWhereString = MyWhereString + ", " + MyListItem.Value; } } } bool bFirstTime = true; foreach (ListItem MyListItem in Sql_CuentasBancarias_Moneda_Numeric.Items) { if (MyListItem.Selected) { if (MyWhereString == "") { MyWhereString = " CuentasBancarias.Moneda In (" + MyListItem.Value; bFirstTime = false; } else if (bFirstTime) { MyWhereString += ") And CuentasBancarias.Moneda In (" + MyListItem.Value; bFirstTime = false; } else { MyWhereString = MyWhereString + ", " + MyListItem.Value; } } } if (MyWhereString != "") { MyWhereString = MyWhereString + ")"; } else { MyWhereString = "1 = 1"; } // nótese como reconstruímos todo el select command del listbox de monedas CuentasBancarias_SqlDataSource.SelectCommand = "SELECT CuentasBancarias.CuentaInterna, Bancos.Abreviatura + ' - ' + Monedas.Simbolo + ' - ' + " + "CuentasBancarias.CuentaBancaria + ' - ' + Companias.Abreviatura AS NombreCuentaBancaria " + "FROM CuentasBancarias Inner Join Agencias On CuentasBancarias.Agencia = Agencias.Agencia " + "INNER JOIN Bancos ON Agencias.Banco = Bancos.Banco INNER JOIN " + "Monedas ON CuentasBancarias.Moneda = Monedas.Moneda INNER JOIN Companias ON " + "CuentasBancarias.Cia = Companias.Numero WHERE (Bancos.NombreCorto IS NOT NULL) AND " + "(Monedas.Simbolo IS NOT NULL) AND (CuentasBancarias.CuentaBancaria IS NOT NULL) And " + "(Estado = 'AC') And " + MyWhereString + " " + "ORDER BY Bancos.NombreCorto, Monedas.Simbolo, CuentasBancarias.CuentaBancaria"; Sql_CuentasBancarias_CuentaInterna_Numeric.DataBind(); }