martes, 19 de julio de 2016

MemberShip de ASP.NET con Visual Studio 2013

Debido  a que utilizo el  Visual Studio 2013 los tutoriales para entrar a la configuración del sitio web no me funcionaron entré  de la siguiente forma, voy a  la consola

con cd.. me regreso en la ruta hasta llegar a C:/
Después  lanzo
cd C:\Program Files\IIS Express\
 iisexpress.exe /path:C:\windows\microsoft.net\framework\v4.0.30319\asp.netwebadminfiles /vpath:"/asp.netwebadminfiles" /port:8095 /clr:4.0 /ntlm



Aquí la señal de que iniciamos IIS Express, enseguida vamos al navegador y  escribimos

http://localhost:8095/asp.netwebadminfiles/default.aspxapplicationPhysicalPath=C:\Users\Marilu\Documents\VisualStudio2013\Projects\WebMemberShip\WebMemberShip&applicationUrl=/
Donde lo violeta es la ruta a el proyecto.
Esta es la página principal, después entro a seguridad y me aparece el error del proveedor.
Entonces instalo SQL Express  (SQLEXPR_x86_ENU.exe). 
Después me dice que no encuentra los procedimientos y tablas de la base de datos y voy a configurar la base de datos en la siguiente ruta.
C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_regsql.exe


Y en la base de datos se refleja así

Entonces vuelvo a ejecutar las instrucciones para entrar a la configuración del sitio web y  en la pestaña seguridad me aparece correctamente la siguiente vista.

Hasta aquí continué con el  tutorial

Videotutorial ASP.NET Membership/Roles Login Controls (Máster en Tecnologías Web)

https://www.youtube.com/watch?v=4s2vCFaxJeo



viernes, 4 de marzo de 2016

SqlDataSource no enlaza a mis Combox

Estaba trabajando  con los combos de devexpress y funcionaban bien, estaba haciendo animaciones en los  div  que los  contenían y se me ocurre poner la propiedad  visible="false" en un intento  de mantener el  estado de  esos divs entre postbacks, entonces dejan de enlazarse los combos.
Solución
continuar  usando  style="display:none; " y jquery  para mostrar y  ocultar.



  <dx:ASPxComboBox ID="cmbMedicoReferente" ValueField="idMedico" runat="server" DataSourceID="SqlDataSource3"
                                        Width="80%">
                                        <Columns>
                                            <dx:ListBoxColumn FieldName="Medico" Caption="Médico" />
                                        </Columns>
                                    </dx:ASPxComboBox>

 <asp:SqlDataSource ID="SqlDataSource3" runat="server"
        ConnectionString="<%$ ConnectionStrings:DB_CHSJConnectionString %>"
        SelectCommand="Select  idMedico,RTRIM(Nombre)+' '+RTRIM(Ap_Paterno)+' '+RTRIM(Ap_Materno) Medico from MR ">

miércoles, 17 de febrero de 2016

Devexpress no reconoce los UpdatePanels de AJAX

A control with ID 'treeView' could not be found for the trigger in UpdatePanel 'UpdatePanel5'

 <asp:UpdatePanel ID="UpdatePanel5" runat="server">
            <ContentTemplate>
                <asp:HiddenField ID="HiddenTCPagina" runat="server" />
                <asp:HiddenField ID="HiddenTCPK_Name" runat="server" />
                <asp:HiddenField ID="HiddenTCIdIngreso" runat="server" />
            </ContentTemplate>
            <Triggers>
                  <asp:AsyncPostBackTrigger ControlID="treeView" EventName="NodeClick" />
            </Triggers>
        </asp:UpdatePanel>

Estoy usando un ASPxSplitter de Devexpress y no reconoce mi  treeview en otro  SplitterPane
Esta línea ya la utilizé y funciona correctamente en otro  update panel
<asp:AsyncPostBackTrigger ControlID="treeView" EventName="NodeClick" />

Intenté viendo el  código  fuente y cambiándole el nombre de distintas maneras
Encontré la respuesta en esta  página

En  el Load de mi página  registré el  control treeView

AsyncPostBackTrigger trigger = new AsyncPostBackTrigger(); trigger.ControlID = treeView.UniqueID;// pgFormVersionSetup.FindControl("btnUpload").UniqueID; trigger.EventName = "NodeClick"; UpdatePanel5.Triggers.Add(trigger);

lunes, 15 de febrero de 2016

Tab Pane Boostrap cambiar de pestaña por Java Script

Página con  referencia completa

// Select all tabs$('.nav-tabs a').click(function(){
    $(this).tab('show');
})

// Select tab by name$('.nav-tabs a[href="#home"]').tab('show')

// Select first tab$('.nav-tabs a:first').tab('show'

// Select last tab$('.nav-tabs a:last').tab('show'

// Select fourth tab (zero-based)$('.nav-tabs li:eq(3) a').tab('show')

miércoles, 13 de enero de 2016

Llenar el TreeVew de ASP.NET con tabla Base de Datos


La tabla en SQL Server  consta de 3 columnas principales
idNodo es la PK
Nodo  es el  texto o  descripción del nodo
idNodoPadre es el  nodo  del que se desprende el nodo hijo.


 protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                int total = Convert.ToInt32(u.ObtenValor("Select MAX(idNodo) from TreeView"));
                for (int i = 0; i < total; i++)
                {
                    string sql = "Select idNodo,Nodo from TablaTreeviews where idNodoPadre=" + i + " order by idNodo";
                    SqlDataReader r;
                    r = con.Reg(sql);
                    while (r.Read())
                    {
                        if (i == 0)
                        {
                            TreeView.Nodes.Add(new TreeNode(r["Nodo"].ToString().Trim(), r["idNodo"].ToString().Trim()));
                        }
                        else
                        {
                            TreeNode nodo = BuscarNodo(TreeView.Nodes, i.ToString());
                            nodo.ChildNodes.Add(new TreeNode(r["Nodo"].ToString().Trim(), r["idNodo"].ToString().Trim()));
                        }
                    }
                }
            }
        }

        TreeNode BuscarNodo(TreeNodeCollection collec, string value)
        {
            TreeNode nodo = new TreeNode();
            for (int i = 0; i < collec.Count; i++)
            {
                if (collec[i].Value.Equals(value))
                    return nodo = collec[i];
                else
                {
                    if (collec[i].ChildNodes.Count>0)
                    nodo = BuscarNodo(collec[i].ChildNodes, value);
                    if (nodo.Value.Equals(value)) return nodo;
                }
            }
            return nodo;
        }

Encuentra la clase conexión aquí

lunes, 11 de enero de 2016

Clase Conexion

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.SqlClient;
using System.Runtime.InteropServices;
using System.Collections;
using System.IO;
using System.Data;
using System.Web.UI.WebControls;
using System.Configuration;

namespace SistemaExpediente.Clases
{
    public class Conexion
    {
        public SqlConnection CON;
        private SqlCommand Comando = new SqlCommand();

        public Conexion()
        {


//string cnx = "Data Source=NOMBRESERVIDOR;Initial Catalog=NOMBREDEMIBASEDEDATOS;Persist Security Info=True;User ID=sa;Password=MICONTRASENA";

ConnectionStringSettings settings = ConfigurationManager.ConnectionStrings["DB_CHSJConnectionString"];

string cnx =settings.ConnectionString;

CON = new SqlConnection(cnx);        }

        ~Conexion()
        {
            try { CON.Close(); }
            catch (Exception e) { Console.WriteLine(e.Message); }
            CON.Dispose();
        }

        public void cerrar()
        { CON.Close(); }

        public int Accion(string Cad)
        {
            int x;
            try
            {
                CON.Open();
                Comando.Connection = CON;
                Comando.CommandText = Cad;
                x = Comando.ExecuteNonQuery();
                cerrar();
                return x;
            }
            catch
            {
                cerrar();
                CON.Open();
                Comando.Connection = CON;
                Comando.CommandText = Cad;
                x = Comando.ExecuteNonQuery();
                cerrar();
                return x;
            }
        }

     
        public DataTable GetSelect(string commandText)
        {
            DataTable TABLA = new DataTable("Tmp");
            try
            {
                int i;
                CON.Close();//movi
                CON.Open();
                SqlCommand CMD = new SqlCommand(commandText, CON);
                SqlDataReader REG = CMD.ExecuteReader();
                for (i = 0; i < REG.FieldCount; i++)
                {
                    TABLA.Columns.Add(REG.GetName(i), REG.GetFieldType(i));
                }
                while (REG.Read())
                {
                    DataRow ROWS = TABLA.NewRow();
                    for (i = 0; i < REG.FieldCount; i++)
                    {
                        ROWS.SetField(i, REG[i]);
                    }
                    TABLA.Rows.Add(ROWS);
                }
                REG.Close();
                CON.Close();
                return TABLA;
            }
            catch (SqlException Ex)
            {

            }
            return TABLA;
        }

     

        public SqlDataReader Reg(string Cad)
        {
            try
            {
                cerrar();
            }
            finally
            {
                try
                {
                    CON.Open();
                    Comando.CommandText = Cad;
                    Comando.Connection = CON;
                }
                catch (Exception Er)
                {

                }
            }
            try { return Comando.ExecuteReader(); }
            catch { return null; }
        }

    }
}