Imagina que tenemos un label en el masterpage y de una de las paginas queremos tomar el valor de ese label o talvez queremos asignar un valor a ese label.
Para hacer esto utilizamos este código:
Lab.lbl1= this.Master.FindControl("Content").FindControl("Login1").FindControl("lblID");
O este si queremos cambiar el valor del color a un botón del masterpage:
//Cambiando el color de un boton
LinkButton BotonMenu = Master.FindControl("LoginView1").FindControl("LinkButton1") as LinkButton;
if (BotonMenu != null)
{
BotonMenu.BackColor = System.Drawing.Color.FromName("#bfcbd6");
}
Si te fijas estos controles del ejemplo están dentro de un LoginView. Si tu control esta fuera dentro de algún componente como un loginview o un panel debes utilizar esa manera pero si esta fuera puedes dejar un solo FindControl.
Blog de algunos tips de programación que seran útiles a la hora de hacer un sistema y que pueden ser olvidados por los desarrolladores.
Bienvenidos
Recuerda que tus comentarios son importantes y recuerda agradecer si te fue útil algun artículo publicado aquí.
L1f3 15 a D@nc3 Flo0r
L1f3 15 a D@nc3 Flo0r
miércoles, 16 de mayo de 2012
GridView.RowCommand : Obtener un valor al ejecutar un comando en el gridview
La idea es tener un botón dentro del gridview y que cuando se le haga clic al botón se seleccione el valor de una de las columnas y se ejecute la acción.
En la propiedad command del boton se le puede especificar el nombre que quieras al comando y luego llamarlo de la siguiente manera:
En la propiedad command del boton se le puede especificar el nombre que quieras al comando y luego llamarlo de la siguiente manera:
void CustomersGridView_RowCommand(Object sender, GridViewCommandEventArgs e) { if(e.CommandName=="NombreComando") { // Selecciona el indice de la fila del boton en el que se hizo clic int index = Convert.ToInt32(e.CommandArgument); // retorna el row en que se hizo clic GridViewRow row = CustomersGridView.Rows[index]; // asigna el valor de la celda de la columna 2 y la fila en que se hizo clic string item = Server.HtmlDecode(row.Cells[2].Text); } }
Existen unos comandos ya predeterminados integrados al control Gridview que son:
Valor de CommandName | Descripción |
---|---|
"Cancel"
|
Cancela una operación de edición y devuelve el control GridView al modo de sólo lectura. Provoca el evento RowCancelingEdit.
|
"Delete"
|
Elimina el registro actual. Provoca los eventos RowDeleting y RowDeleted.
|
"Edit"
|
Pone el registro actual en modo de edición. Provoca el evento RowEditing.
|
"Page"
|
Realiza una operación de paginación. Establece la propiedad CommandArgument del botón en "First", "Last", "Next", "Prev" o en un número de página para especificar el tipo de operación de paginación que se va a realizar. Provoca los eventos PageIndexChanging y PageIndexChanged.
|
"Select"
|
Selecciona el registro actual. Provoca los eventos SelectedIndexChanging y SelectedIndexChanged.
|
"Sort"
| |
"Update"
|
Actualiza el registro actual en el origen de datos. Provoca los eventos RowUpdating y RowUpdated.
|
fuente: http://msdn.microsoft.com/es-es/library/system.web.ui.webcontrols.gridview.rowcommand(v=vs.80).aspx
martes, 1 de mayo de 2012
Error: System.Threading.ThreadAbortException: Thread was being aborted.
System.Threading.ThreadAbortException: Thread was being aborted.
Que significa este error que aparece registrado en nuestro log?
Este error normalmente ocurre cuando utilizamos la sentencia Response.Redirect() para redirigirnos a otra página.
Por eso el comando nos da el hint: "endResponse: Indicates whether execution of the current page should terminate."
Así que la sintaxis correcta debería ser:
Response.Redirect("Default.aspx",false);
Que significa este error que aparece registrado en nuestro log?
Este error normalmente ocurre cuando utilizamos la sentencia Response.Redirect() para redirigirnos a otra página.
Ej.: Response.Redirect("Default.aspx");Esta sentencia va a funcionar pero arrojará el error en los logs "System.Threading.ThreadAbortException: Thread was being aborted" porque no le hemos especificado al código si luego de hacer el direccionamiento debe continuar o terminar la ejecución de la página actual.
Por eso el comando nos da el hint: "endResponse: Indicates whether execution of the current page should terminate."
Así que la sintaxis correcta debería ser:
Response.Redirect("Default.aspx",false);
Suscribirse a:
Entradas (Atom)