• Jueves 20 de Febrero de 2025, 20:23

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - granjalf

Páginas: [1]
1
ASP .NET / Re: Hacer Que El "back" No Duplique Operaciones
« en: Lunes 21 de Mayo de 2007, 21:44 »
Thanks pucho, lo del pop up esta interesante, pero no lo podré usar por exigencias de mis jefes, pero el otro como tendría que implementarlo exactamente? como haría para que no se ejecuten metodos onClick()? y si lo hago, mis botones podrán usarse o quedan sin onClick para el resto de tiempo?

Thank you :)

2
ASP .NET / Re: Hacer Que El "back" No Duplique Operaciones
« en: Jueves 17 de Mayo de 2007, 16:50 »
Uh, thanks sergio :), la del link me parece más factible por ahora, pero no se como implementarlo... podrías darme un ejemplo pls? no se como hacer que un link ejecute acciones de ese tipo en el servidor...

Digamos que tengo una función para agregar mis datos, haría que el link llame a esa función? no manyo :( Help me pls !!

3
ASP .NET / Hacer Que El "back" No Duplique Operaciones
« en: Miércoles 16 de Mayo de 2007, 18:20 »
Hola a todos, aqui estoy de nuevo con un nuevo problema:

Resulta que en mi página, cuando hago clic a un botón "agregar", agrega a una db un campo, esto de acuerdo a algunas restricciones (por ej, antes de insertar el campo revisa que se encuentre en un estado de "aprobado").

la web revisa los datos ingresados, si son correctos los inserta a la db, si son incorrectos envía mensaje de error.

El problema está cuando, para volver a insertar otros datos, vuelvo a esta page haciendo click en "back" del navegador. Vuelve a insertar el dato y lo duplica :(

He intentado manejar esto con una condicional en if(!isPostBack), pero al hacer esto la page ya no hace nada, en ningún momento.

HELP!!!

4
ASP .NET / Re: Consulta Sobre Datagrid
« en: Miércoles 25 de Abril de 2007, 16:41 »
Hola:

En mi caso tuve un datagrid al cual tenía que reducirle los caracteres a máximo 145 en una columna, creo que podrías hacerlo de la misma manera para que muestre SI o NO. Es la Siguiente.

La columna que quería que corte el texto a 145 caracteres (en tu caso la que quieres que muestre SI o NO) la declaro como columna Plantilla (haciendo click derecho al datagrid, click en la opción Generador de Propiedades).

Luego creo un método llamado ResumenDescripción,al cual le paso un string como parámetro y devuelve el string reducido.

Luego, en el código HTML busco la columna Plantilla y colo el siguiente código:

<asp:TemplateColumn SortExpression="SACP" HeaderText="SACP">
                                                      <ItemTemplate>
                                                         <%# ResumenDescripcion(DataBinder.Eval(Container.DataItem,"SACP").ToString()) %>
                                                      </ItemTemplate>
                                                   </asp:TemplateColumn>

Eso es todo. tu puedes crear un metodo para que si es true ponga Si, caso contrario NO. No se si el if se puede hacer directamente ahí dentro :P

5
ASP .NET / Re: Creación Dinámica De Una Estructura De Árbol
« en: Miércoles 18 de Abril de 2007, 16:44 »
Muchas gracias por la ayuda :) He logrado hacer el arbol de la siguiente manera:

- Tengo cinco tablas, 1 se llama SACP_CAUSA para registrar causas principales y sus campos son id_SACP (FK),  ID_CAUSA (FK) e ID_SUBTIPO(FK) (Subtipo de la Causa); 1 se llama CAUSAS donde vienen las causas en sí; 1 tabla llamada CAUSAP_CAUSAS con campos ID_CAUSAP (FK)(Causa padre) e ID_CAUSAS (FK) (Causas pertenecientes a otras); 1 tabla donde especifico el SUBTIPO de Causa con campos ID_SUBTIPO, NOM_SUBTIPO (nombre del subtipo), ID_TIPO (FK); 1 tabla TIPO que contiene ID_TIPO,NOM_TIPO

- Digamos en resumen que lo que hace el método es: primero agregar un nodo Raíz llamado CAUSA, llama al metodo agregarNodos pasando la colección de nodos actual (el nodo CAUSA) y la cadena "tipo" para indicar que quiero insertar tipos. Al nodo CAUSA se agregan 5 nodos que son los 5 elementos  de la tabla TIPO, al terminar, el método se llama a sí mismo con la colección de 5 nodos y el string "subtipo", y este al terminar se llama a sí mismo con la ultima colección de nodos y el string "CausaPrincipal", para llamarse al final y hasta llenar toodos los nodos de "causas" de "causas" colocando una colección de nodos de Causas y el string "CausaSecundaria", llamandose a si mismo en su interior.

- Me bajé los controles de IExplorer del link arriba puesto y coloque un control de Treeview en mi page llamado TreeView1.

- En Page_Load llamo al método LlenarTree2() que es el siguiente:

      #region LLENAR ARBOL

      public void LlenarTree2()
      {
         TreeView1.Nodes.Clear();
         TreeView1.Nodes.Add(new Microsoft.Web.UI.WebControls.TreeNode());
         TreeView1.Nodes[0].Text = "<strong>CAUSAS</strong>";
         TreeView1.Nodes[0].Expanded = true;
         agregarNodos("Tipo",TreeView1.Nodes);
      }

      public void agregarNodos(string TipoIns,Microsoft.Web.UI.WebControls.TreeNodeCollection Nodos)
      {
         DataTable nTable = new DataTable();
         switch (TipoIns)
         {
            case "Tipo":
            {
               Base.TIPOCAUSA tipoc = new SGI_Intranet2.Base.TIPOCAUSA();
               nTable = tipoc.GetTipoCausaVerTodos();
               for(int i = 0;i<nTable.Rows.Count;i++)
               {
                  Nodos[0].Nodes.Add(new Microsoft.Web.UI.WebControls.TreeNode());
                  Nodos[0].Nodes.Text = "<strong>" + nTable.Rows.ItemArray[1].ToString() + "</strong>";
                  Nodos[0].Nodes.NodeData = nTable.Rows.ItemArray[0].ToString();
               }
               agregarNodos("SubTipo",Nodos[0].Nodes);
               break;
            }
            case "SubTipo":
            {
               int id_tipo;
               Base.TIPOCAUSA tipoc = new SGI_Intranet2.Base.TIPOCAUSA();
               for(int i=0;i<Nodos.Count;i++)
               {
                  id_tipo = Convert.ToInt32(Nodos.NodeData);
                  nTable = tipoc.GetSubtipoCausaVerdeTipo(id_tipo);
                  for (int j = 0; j < nTable.Rows.Count;j++)
                  {
                     Nodos.Nodes.Add(new Microsoft.Web.UI.WebControls.TreeNode());
                     Nodos.Nodes[j].Text = "<strong>" + nTable.Rows[j].ItemArray[2].ToString() + "</strong>";
                     Nodos.Nodes[j].NodeData = nTable.Rows[j].ItemArray[0].ToString();
                  }
                  agregarNodos("CausaPrincipal",Nodos.Nodes);
               }
               break;
            }
            case "CausaPrincipal":
            {
               Base.CAUSA causa = new SGI_Intranet2.Base.CAUSA();
               for(int i=0;i<Nodos.Count;i++)
               {
                  nTable = causa.GetCausaPrincipalPorSubtipo(id_sacp.ToString(),Nodos.NodeData);
                  for (int j = 0; j < nTable.Rows.Count;j++)
                  {
                     Nodos.Nodes.Add(new Microsoft.Web.UI.WebControls.TreeNode());
                     Nodos.Nodes[j].Text = ResumenDescripcion(nTable.Rows[j].ItemArray[1].ToString());
                     Nodos.Nodes[j].NodeData = nTable.Rows[j].ItemArray[0].ToString();
                     Nodos.Nodes[j].NavigateUrl = "causa-detalle.aspx?id_causa=" + Nodos.Nodes[j].NodeData;
                  }
                  agregarNodos("CausaSecundaria",Nodos.Nodes);
               }
               break;
            }
            case "CausaSecundaria":
            {
               Base.CAUSA causa = new SGI_Intranet2.Base.CAUSA();
               if (Nodos.Count != 0)
               {
                  for(int i=0;i<Nodos.Count;i++)
                  {
                     nTable = causa.GetCausaPorCausa(Nodos.NodeData);
                     for (int j = 0; j < nTable.Rows.Count;j++)
                     {
                        Nodos.Nodes.Add(new Microsoft.Web.UI.WebControls.TreeNode());
                        Nodos.Nodes[j].Text = ResumenDescripcion(nTable.Rows[j].ItemArray[1].ToString());
                        Nodos.Nodes[j].NodeData = nTable.Rows[j].ItemArray[0].ToString();
                        Nodos.Nodes[j].NavigateUrl = "causa-detalle.aspx?id_causa=" + Nodos.Nodes[j].NodeData;
                     }
                     agregarNodos("CausaSecundaria",Nodos.Nodes);
                  }
               }
               break;
            }
         }
      }
      #endregion

Con esto logro llenar el arbol y logro ponerle la dirección dinámica a cada nodo.

Lo único malo es que no puedo colocar el texto como para que entre en un espacio reducido, así que tengo que utilizar un método para reducir el texto y ponerle tres puntos suspensivos al final. Si alguien sabe como hacer para que se vea más nice, le agradecería la respuesta :)

6
ASP .NET / Creación Dinámica De Una Estructura De Árbol
« en: Jueves 12 de Abril de 2007, 16:10 »
Hola a todos. Tengo el problema de no poder representar datos de una base de datos en una web.

Resulta que los datos son "Causas de un Problema", y estas "causas" tienen "Causas" que las provocan. La manera que ví por conveniente es un arbol, el cual me permita que sus elementos sean link-ables para ver los detalles de la causa clicada en otra web. Alguien sabe como se podría hacer esto?.

Algo así como un diagrama Causa-Efecto.

Ej.

 No puedo Hacer mi Arbol
 |---Porque no se como
 |    |--- porque nunca lo hice antes
 |
 No encuentro re....
 |---Porque no se pu....

7
ASP .NET / Re: Creación Dinamica De Controles En Asp.net 1.x /c#
« en: Martes 3 de Abril de 2007, 17:54 »
Muchas gracias. Si resultaron todos, he optado por el siguiente:

private void Page_Load(object sender, System.EventArgs e)
   {
      if(!this.IsPostBack)
      {

         Base.NORMA norma = new SGI_Intranet2.Base.NORMA();
         cblNormas.DataSource = norma.GetNormas();
         cblNormas.DataValueField = "ID_NORMA";
         cblNormas.DataTextField = "NOM_NORMA";
         cblNormas.DataBind();

         Base.DOCUMENTO docint = new SGI_Intranet2.Base.DOCUMENTO();
         cblDoc.DataSource = docint.GetDocInternos();
         cblDoc.DataValueField = "ID_DOC";
         cblDoc.DataTextField = "NOM_DOC";
         cblDoc.DataBind();
      }
   }

Ahora se me presentó un problemota de nuevo. Tengo que crear drop down Lists dinámicamente de acuerdo a los elementos que elijo de mi CheckboxList y que se llenen con datos que saco de una Base de Datos.

He utilizado un Panel para crear dentro de este un Label y un DropDownList por cada item seleccionado en el checkboxlist; cuando utilizo el checkboxlist todo va bien, pero cuando hago clic en un checkbox para que me haga aparecer otro panel, mi panel que tiene los labels y dropdownlists se vacía. Aqui envío el código de llenado y el código del checkbox. En el Form_Load solo tengo el codigo arriba escrito. HELP PLS!!

//este metodo uso para controlar los checkbox elegidos de mi checkBoxList
private void cblNormas_SelectedIndexChanged(object sender, System.EventArgs e)

   {
   //con este if veo si hay algún checkbox en checked  
   if (cblNormas.SelectedIndex !=-1)
      {
         //este es el panel que lleno
         pnlNormas.Visible = true;
         string normas;
         Label lb;
         DropDownList dl;
         int c = 0;
         Base.REGLA regla = new SGI_Intranet2.Base.REGLA();
                //este for corre todos los checkbox del cbl, y crea un label y un
                //dropdownlist por cada item que esté checked (o selected)
   for(int i=0;i<cblNormas.Items.Count;i++)
   {
      if (cblNormas.Items.Selected)
      {
         normas = "n.id_norma =" + cblNormas.Items.Value;
         pnlNormas.Controls.Add(new Label());
         lb = (Label)(pnlNormas.Controls[c]);
         c++;
         lb.Text = cblNormas.Items.Text + ": ";
         lb.ID = "lb" + cblNormas.Items.Text;
         lb.Width = 142;
         lb.Font.Bold = true;
         lb.BackColor = Color.FromArgb(195,216,235);
         pnlNormas.Controls.Add(new DropDownList());
         dl = (DropDownList)(pnlNormas.Controls[c]);
         dl.ID = cblNormas.Items.Text;
         dl.Width = 600;
         c++;
         dl.DataSource = regla.GetReglaVerdeNorma(normas);
         dl.DataValueField = "ID_REGLA";
         dl.DataTextField = "NOM_REGLA";
         dl.DataBind();
      }
   }
        }
   else
        pnlNormas.Visible = true;//era false
   }


//este es el de checkbox, simplísimo
private void chkOtros_CheckedChanged(object sender, System.EventArgs e)
   {
   if (chkOtros.Checked)
      pnlOtroReg.Visible = true;
   else
      pnlOtroReg.Visible = false;
   }

Agradezo de Antemano su pronta respuesta :)

8
ASP .NET / Re: Creación Dinamica De Controles En Asp.net 1.x /c#
« en: Viernes 23 de Marzo de 2007, 16:03 »
THANKS...pero no hay esas propiedades... solo encuentro DataSource DataTextField y DataValueField. creo que es lo mismo :P

9
ASP .NET / Creación Dinamica De Controles En Asp.net 1.x /c#
« en: Lunes 12 de Marzo de 2007, 16:25 »
Hola a todos:

Estoy construyendo una page dinámica para una empresa y necesito que se generen controles dinámicamente con la page. En este caso requiero que de acuerdo a una tabla de "Areas de la empresa" de la base de datos me genere dinámicamente tantos checkbox como campos en la tabla para que puedan elegir las areas y luego hacer una consulta con las areas seleccionadas.

Agradezco anticipadamente su pronta respuesta :)

Uso un dataset para manejar mis datos.

P.D:Pronto tambien necesitaré crear botones y textbox de igual manera, pls help

Páginas: [1]