asp-c#
TRANSCRIPT
ING. JIMMY ANHUAMÁN LEÓN
Taller Desarrollo 2C# .Net SQL Server
AGENDA:UTILIZANDO CONTROLES.
VALIDACIÓN DE ENTRADA DE DATOS.CREANDO UNA CONECCION PARA BD.
Semana 2
ING. JIMMY ANHUAMÁN LEÓN
Utilizando Controles
I. Usando Paginas Code-Behind
II. Utilizando Controles Servidor
III. Eventos para controles de Servidor Web
IV. Usando Eventos de Paginas
ING. JIMMY ANHUAMÁN LEÓN
I. Usando Paginas Code-Behind
1. Como Implementar Código
2. Escribiendo Código Inline
3. Que son Páginas Code-Behind?
4. Entendiendo como Trabajan las Paginas Code-Behind
ING. JIMMY ANHUAMÁN LEÓN
1. Como implementar código
3 Métodos Para Agregar código:
Las paginas Code-behind son las páginas por defecto de Visual Studio.NET
Método Descripció n
Mixto Poner código dentro del mismo Archivo del contenido
Inline Poner código en una sección separada del archivo contenido
Code-Behind Poner código en Archivos Separados
ING. JIMMY ANHUAMÁN LEÓN
2. Escribiendo código Inline
Código y contenido dentro del mismo archivoSecciones diferentes dentro del Archivo para el código y HTML
<HTML><asp:Button id="btn" runat="server"/></HTML><SCRIPT Language="c#" runat="server">
private void btn_Click(object sender, EventArgs e){. . .
}</SCRIPT>
<HTML><asp:Button id="btn" runat="server"/></HTML><SCRIPT Language="c#" runat="server">
private void btn_Click(object sender, EventArgs e){. . .
}</SCRIPT>
ING. JIMMY ANHUAMÁN LEÓN
3. Qué son páginas Code-Behind?
Separación de código del contenido
Los Desarrolladores y Diseñadores de UI pueden trabajar independientemente
Form1.aspxForm1.aspx Form1.aspxForm1.aspx Form1.aspx.csForm1.aspx.cs
<tags><tags> codecode
codecode
Separate filesSingle file
ING. JIMMY ANHUAMÁN LEÓN
4. Como Trabajan las Paginas Code-Behind
Crea Archivos separados para usar interface de usuario y interface lógica
Usa La directiva @ Page para enlazar los 2 archivos
Pre-compile o JIT-compile
Page1.aspx Page1.aspx.cs
ING. JIMMY ANHUAMÁN LEÓN
II. Utilizando Controles Servidor
1. Que es Controles Servidor?
2. Tipos de Controles de Servidor
3. Guardando Estados del Control
4. Controles Servidor HTML
5. Controles Servidor Web
6. Seleccionando los controles apropiados
ING. JIMMY ANHUAMÁN LEÓN
1. Que es Controles Servidor?
Runat="server"
Los Eventos ocurren sobre el servidor
Guardan Estados
Tiene funcionalidad propia
Modelo de Objeto Común
Todos tienen Atributos Id y Te xtCrea HTML para browser específico
<asp:Button id="Button1" runat="serverText="Submit"/>
<asp:Button id="Button1" runat="serverText="Submit"/>
ING. JIMMY ANHUAMÁN LEÓN
2. Tipos de Controles de Servidor
Controles Servidor HTML
Controles Servidor WebControles Intrinsicos
Controles de Validación
Controles Enriquecidos
Controles de Listas Enlazables
Controles Web Internet Explorer
ING. JIMMY ANHUAMÁN LEÓN
3. Guardando Estados del Control
< %@ Page En able Vie w State = "False " %>< asp:Lis tBo x id= "Lis tNam e "
En able Vie w State = "true " run at= "se rve r">
</asp:ListBox>
< %@ Page En able Vie w State = "False " %>< asp:Lis tBo x id= "Lis tNam e "
En able Vie w State = "true " run at= "se rve r">
</asp:ListBox>
<input type="hidden" name="__VIEWSTATE"
value="dDwtMTA4MzE0MjEwNTs7Pg==" />
<input type="hidden" name="__VIEWSTATE"
value="dDwtMTA4MzE0MjEwNTs7Pg==" />
ING. JIMMY ANHUAMÁN LEÓN
4. Controles Servidor HTML
<input type="text" id="txtName runat="server" /><input type="text" id="txtName runat="server" />
ING. JIMMY ANHUAMÁN LEÓN
5. Controles Servidor Web
<asp:TextBox id="TextBox1runat="server">Text_to_Display
</asp:TextBox>
<asp:TextBox id="TextBox1runat="server">Text_to_Display
</asp:TextBox>
<input name="TextBox1" type="text" value="Text_to_Display"Id="TextBox1"/>
<input name="TextBox1" type="text" value="Text_to_Display"Id="TextBox1"/>
ING. JIMMY ANHUAMÁN LEÓN
6. Seleccionando los controles apropiados
ING. JIMMY ANHUAMÁN LEÓN
Demo
ING. JIMMY ANHUAMÁN LEÓN
III. Eventos para controles de Servidor Web
1. Que es un Evento?
2. Eventos Client-Side
3. Eventos Server-Side
4. Creando Eventos
5. Interactuando con controles dentro de eventos
ING. JIMMY ANHUAMÁN LEÓN
1. Que es un Evento?
Una Acción en respuesta para una interacción del usuario con los controles de la Pagina Web
ING. JIMMY ANHUAMÁN LEÓN
2. Eventos Client-Side
language
ING. JIMMY ANHUAMÁN LEÓN
3. Eventos Server-Side
ING. JIMMY ANHUAMÁN LEÓN
4. Creando Eventos
Visual Studio .NET declara variables y crea un procedimiento enlazado a un evento
protected System.Web.UI.WebControls.Button cmd1;
private void InitializeComponent(){
this.cmd1.Click += new System.EventHandler(this.cmd1_Click);this.Load += new System.EventHandler(this.Page_Load);
}private void cmd1_Click(object s, System.EventArgs e){}
protected System.Web.UI.WebControls.Button cmd1;
private void InitializeComponent(){
this.cmd1.Click += new System.EventHandler(this.cmd1_Click);this.Load += new System.EventHandler(this.Page_Load);
}private void cmd1_Click(object s, System.EventArgs e){}
ING. JIMMY ANHUAMÁN LEÓN
5. Controles dentro de eventos
Lee las propiedades del control del Servidor Web
Responde a otros controles de servidor web
strGreeting = "Hello " + txtName.Text;strGreeting = "Hello " + txtName.Text;
lblGreeting.Text = "new text";lblGreeting.Text = "new text";
ING. JIMMY ANHUAMÁN LEÓN
IV. Usando Eventos de Paginas
1. Entiendiendo el ciclo de vida de los ventos de una Pagina
2. Manejando el Evento Page.IsPostback
3. Enlazando 2 controles juntos
ING. JIMMY ANHUAMÁN LEÓN
1. Entiendiendo el ciclo de vida de los Eventos de una Pagina
Page is disposed
Page_LoadPage_Load
Page_UnloadPage_Unload
Textbox1_ChangedTextbox1_Changed
Button1_ClickButton1_Click
Page_InitPage_Init
Change EventsChange Events
Action EventsAction Events
ING. JIMMY ANHUAMÁN LEÓN
2. Manejando el Evento Page.IsPostback
Page_ Load se dispara sobre cada request
Usa Page .Is Po s tBack para la ejecución de lógica condicional
Page.IsPostBack impide recargar para cada postback
private void Page_Load(System.Object s, System.EventArgs e){if (!Page.IsPostBack){
//executes only on initial page load}//this code executes on every request
}
private void Page_Load(System.Object s, System.EventArgs e){if (!Page.IsPostBack){
//executes only on initial page load}//this code executes on every request
}
ING. JIMMY ANHUAMÁN LEÓN
3. Enlazando 2 controles juntos
Enlazando un control con otro es util para tomar valores desde una lista
Data binding
<asp:DropDownList id="lstOccupation autoPostBack="True" runat="server" >You selected: <asp:Label id="lblSelectedValue" Text="<%# lstOccupation.SelectedItem.Text %>" runat="server" />
<asp:DropDownList id="lstOccupation autoPostBack="True" runat="server" >You selected: <asp:Label id="lblSelectedValue" Text="<%# lstOccupation.SelectedItem.Text %>" runat="server" />
private void Page_Load(Object s, EventArgse){
lblSelectedValue.DataBind();}
private void Page_Load(Object s, EventArgse){
lblSelectedValue.DataBind();}
ING. JIMMY ANHUAMÁN LEÓN
demo
ING. JIMMY ANHUAMÁN LEÓN
Validación de Entrada de Datos
I. Visión General
II. Usando Controles de Validación
III. Paginas de Validación
ING. JIMMY ANHUAMÁN LEÓN
I. Visión General
1. Que es validación de ingreso de datos?
2. Validación Client-Side y Server-Side
3. Controles de validación ASP.NET
ING. JIMMY ANHUAMÁN LEÓN
1. Que es validación de ingreso de datos?
ING. JIMMY ANHUAMÁN LEÓN
2. Validación Client-Side y Server-Side
Valid?
Valid?
User EntersData
No
No
Yes
Yes
Error Message
Client
Server
Web ApplicationProcessed
ING. JIMMY ANHUAMÁN LEÓN
3. Controles de validación ASP.NET
ASP.NET Provee controles de validación para :
Comparar valores
Comparar para una formula personalizada
Comparar rangos
Compara para una expresión de patrón regular
Requiere usar ingreso de usuario
Resume los controles de validación sobre una pagina
ING. JIMMY ANHUAMÁN LEÓN
II. Usando Controles de Validación
1. Agregando controles de validación para un formulario web
2. Posicionando controles de validación sobre un formulario web
3. Combinando controles de validación
4. Controles de Validación de Ingreso Datos
5. Usando el control RegularExpressionValidator
6. Usando el control CustomValidator
ING. JIMMY ANHUAMÁN LEÓN
1. Agregando controles de validación
Agrega un control de validación.
Select the input control to validate
Set validation properties
<asp:Type_of_Validatorid="Validator_id"runat="server"ControlToValidate="txtName"ErrorMessage="Message_for_error_summary"Display="static|dynamic|none"Text="Text_to_display_by_input_control">
</asp:Type_of_Validator>
<asp:Type_of_Validatorid="Validator_id"runat="server"ControlToValidate="txtName"ErrorMessage="Message_for_error_summary"Display="static|dynamic|none"Text="Text_to_display_by_input_control">
</asp:Type_of_Validator>
<asp:TextBox id="txtName" runat="server" /><asp:TextBox id="txtName" runat="server" />
111
222
333
ING. JIMMY ANHUAMÁN LEÓN
2. Posicionando controles de validación
Crear mensaje de error
Seleccionando Mode Display
Static
Dynamic
ING. JIMMY ANHUAMÁN LEÓN
3. Combinando controles de validación
Puedes tener multiple controles de validación sobre un mismo control de ingreso de datos.
El Control RequiredFieldValidator solo chequea controles en blanco.
ING. JIMMY ANHUAMÁN LEÓN
4. Controles de Validación
RequiredFieldValidator
In itialValueCompareValidator
Value To Co m pare or Co n tro lTo Co m pareTypeOpe rato r
RangeValidator
Min im um ValueMaxim um ValueType
ING. JIMMY ANHUAMÁN LEÓN
5. Control RegularExpressionValidator
Usado cuando el ingreso de datos debe estar conformado por un predeterminado patrón.
Visual Studio .NET incluye patrones para:
Número de teléfonos.
Código postales.
Direcciones E-mail
<asp:RegularExpressionValidator ControlToValidate="US_PhoneNumber"ValidationExpression="((\ (\ d{3}\ ) ?)|(\ d{3}-))?\ d{3}-\ d{4} ">*</asp:RegularExpressionValidator >
<asp:RegularExpressionValidator ControlToValidate="US_PhoneNumber"ValidationExpression="((\ (\ d{3}\ ) ?)|(\ d{3}-))?\ d{3}-\ d{4} ">*</asp:RegularExpressionValidator >
ING. JIMMY ANHUAMÁN LEÓN
Expresiones Regulares
Las expresiones regulares son una serie de carácteres que forman un patrón, normalmente representativo de otro grupo de caracteres mayor, de tal forma que podemos comparar el patrón con otro conjunto de caracteres para ver las coincidencias.
Las expresiones regulares estan disponibles en casi cualquier lenguaje de programación, pero aunque su sintaxis es relativamente uniforme, cada lenguaje usa su propio dialecto.
Si es la primera vez que te acercas al concepto de expresiones regulares (regex para abreviar) te animará saber que seguro que ya las has usado, aún sin saberlo, al menos en su vertiente mas básica
ING. JIMMY ANHUAMÁN LEÓN
Expresiones Regulares
Por ejemplo, cuando en una ventana DOS ejecutamos dir *.*, para obtener un listado de todos los archivos de un directorio, estamos utilizando el concepto de expresiones regulares , donde
el patrón * coincide con cualquier cadena de caracteres.
Un Ejemplillo :
ta este es nuestro patrón. Si lo comparamos con: ta coincide tades2 coincide tades1 coincide tabada coincide mita coincide batare coincide
atmo no coincide
ING. JIMMY ANHUAMÁN LEÓN
Expresiones Regulares
ALTERNACION: Una barra vertical separa las alternativas. Por ejemplo, "marrón|castaño" casa con marrón o castaño.
CUANTIFICACIÓN: Un cuantificador tras un carácter especifica la frecuencia con la que éste puede ocurrir. Los cuantificadores más comunes son +, ? y *.
+ El signo más indica que el carácter al que sigue debe aparecer al m e n o s un a ve z. Po r e je m plo , "ho + la" de scribe e l co n jun to infinito hola, hoola, hooola, hoooola, etcétera.
? El signo de interrogación indica que el carácter al que sigue puede aparecer como mucho una vez. Por ejemplo, "ob?scuro" casa con oscuro y obscuro
* El asterisco indica que el carácter al que sigue puede aparecer cero, una, o más veces. Por ejemplo, "0*42" casa con 42, 042, 0042, 00042, etcétera
ING. JIMMY ANHUAMÁN LEÓN
Expresiones Regulares
AGRUPACION: Los paréntesis pueden usarse para definir el ámbito y precedencia de los demás operadores. Por ejemplo, "(p| m)adre" es lo mismo que "padre| madre
EL PUNTO . :El punto es interpretado por el motor de búsqueda como cualquier otro carácter excepto los caracteres que representan un salto de línea
ING. JIMMY ANHUAMÁN LEÓN
Expresiones Regulares
Caracteres Especiales:
Descripció n
\ r Regreso de al inicio
\ n Nueva línea
\ e Tecla Escape
\ d Representa un dígito
\ w Cualquier caracter alfanumérico
\ s Espacio en blanco
\ D Representa cualquier caracter que no sea un dígito
\ W Representa cualquier caracter no alfanumérico
ING. JIMMY ANHUAMÁN LEÓN
Expresiones Regulares
Descripció n
[ ] Útil cuando es necesario buscar uno de un grupo de caracteres. Dentro de los corchetes es posible utilizar el guión "-" para especificar rangos de caracteres: "[\ dA-Fa-f] Numeros Hexa.
$ Representa el final de la cadena de caracteres o el final de la línea.
^ Tiene una doble funcionalidad:1. Carácter individual: representa el inicio de la cadena "^[a-z]Inicio con una letra minuscula.2. Junto con los corchetes: Negación del patrón, ejemplo : [^\ w ] cualquier carácter que no sea alfanumérico o un espacio.
{ num} Indica numero de ocurrencias del patrón se tiene el siguiente formato {n} {n,m} {n,}
ING. JIMMY ANHUAMÁN LEÓN
6. Usando el control CustomValidator
Puede validar sobre client-side or server-side.
Clie n tValidatio n Fun ctio nOn Se rve rValidate
Validate with:
Formula
Data
COM objects
Web Service
ING. JIMMY ANHUAMÁN LEÓN
III. Paginas de Validación
1. Usando la Propiedad Page.IsValid
2. Usando el Control ValidationSummary
ING. JIMMY ANHUAMÁN LEÓN
1. Usando la Propiedad Page.IsValid
Obtiene todas las validaciones de los controles.
Private void cmdSubmit_Click(Object s, EventArgs e) {
if (Page.IsValid){Message.Text = "Page is valid! ;' Perform database updates or other logic here
}}
Private void cmdSubmit_Click(Object s, EventArgs e) {
if (Page.IsValid){Message.Text = "Page is valid! ;' Perform database updates or other logic here
}}
ING. JIMMY ANHUAMÁN LEÓN
2. Control ValidationSummary
Congrega los mensajes de errores de todos los controles de validación sobre la página
Puede mostrar el texto y los mensajes de errores
Usa Text="*" para indicar la ubicación del error
<asp:ValidationSummary id="valSummary runat="server"HeaderText="These errors were found:"ShowSummary="True" DisplayMode="List"/>
<asp:ValidationSummary id="valSummary runat="server"HeaderText="These errors were found:"ShowSummary="True" DisplayMode="List"/>
ING. JIMMY ANHUAMÁN LEÓN
Demo
ING. JIMMY ANHUAMÁN LEÓN
Creando una Coneccion para BD
1. Seguridad de SQL Server
2. Usando el Servidor Explorer para Generar una Conección
3. Creando una coneccíón
4. Modelo de Objetos del DataAdapter
5. Generando un DataSet
ING. JIMMY ANHUAMÁN LEÓN
1. Seguridad de SQL Server
SQL ServerSQL ServerWeb ServerWeb Server
SQL ServerSQL Server
Web ServerWeb Server
ING. JIMMY ANHUAMÁN LEÓN
2. Usando el Servidor Explorer para Generar una Conección
Creas una nueva connección de datos, arrastrando una Tabla desde el Explorador de Servidores
ING. JIMMY ANHUAMÁN LEÓN
3. Creando una conección
Usando SqlConnection
Parametros de configuración de la cadena de conexión.
Connection timeoutData sourceInitial catalogIntegrated security = false
User ID
Password
String strConn = "data source=localhost; " & _"initial catalog=northwind; integrated security=true"
Dim conn As New SqlConnection(strConn)
String strConn = "data source=localhost; " & _"initial catalog=northwind; integrated security=true"
Dim conn As New SqlConnection(strConn)
ING. JIMMY ANHUAMÁN LEÓN
4. Creando una conexión en WebConfig
Sección de configuración
<configuration> <connectionStrings>
<add name="northwind" connectionString= Data Source=(local);Initial Catalog=CursoNetEnosa; Integrated Security=true;" providerName="System.Data.SqlClient" / >
</connectionStrings> </configuration>
ING. JIMMY ANHUAMÁN LEÓN
5. Utilizando una conexion de WebConfig
Acceso de lectura/ escritura a especificaciones de configuración.Ejemplo
ASP.NET 2.0 provee una API de configuración mas rica que versiones anteriores, facilitando la lectura y escritura de los archivos de configuración desde el código. Este ejemplo muestra como recuperar el valor de una cadena de conexión a la base de datos, declarada en un web.config.
SqlConnection connection = new SqlConnection( ConfigurationManager.ConnectionStrings[
conTades2"].ConnectionString);
ING. JIMMY ANHUAMÁN LEÓN
DataBaseHelper
BinaryIntellect DataBaseHelper es un componente de acceso a datos de código abierto que simplifica la ejecución de consultas y procedimientos almacenados.
Este esta desarrollado usando la nueva clase factoria de ADO.NET 2.0 y permite que escribir el proveedor como código neutral.
DataBaseHelper
This document was created with Win2PDF available at http://www.daneprairie.com.The unregistered version of Win2PDF is for evaluation or non-commercial use only.