Ir al contenido principal

Entradas

Mostrando las entradas de 2015

Cambiar las propiedades de un control dentro de un DataItemTemplate del grid de Devexpress en el lado del cliente

-Asignar el nombre de la instancia del cliente en el evento Init del Control  protected void spinEditQty_Init(object sender, EventArgs e)  {   ASPxSpinEdit spinEdit = sender as ASPxSpinEdit;   GridViewDataItemTemplateContainer c = spinEdit.Parent as GridViewDataItemTemplateContainer;   spinEdit.ClientInstanceName = String.Format("spinEditQty{0}", c.KeyValue);  } -Instanciar el control en el lado del cliente usando el nombre de instancia asignado anteriormente var controlID = "spinEditQty" + id; var name = eval(controlID); -Modificamos alguna propiedad del control (en este caso la propiedad valor) name.SetValue(12); //ponemos 12 como valor del control.

Acceder a los valores y métodos de un control dentro de un ASPxGridView en el lado del cliente.

-Agregar una propiedad de JavaScript al control en el evento Init del Grid.          protected void chkCb_Init(object sender, EventArgs e)         {             ASPxCheckBox chk = sender as ASPxCheckBox;             GridViewDataItemTemplateContainer c = chk.Parent as GridViewDataItemTemplateContainer;             chk.JSProperties.Add("cpIndex", c.ItemIndex);         } -Agregar el control dentro del DataItemTemplate del grid y agregar eventHandler OnChecked en el evento CheckedChanged del lado del cliente.  <dx:GridViewDataTextColumn Caption="CB" ShowInCustomizationForm="True"   VisibleIndex="0">   <DataItemTemplate>    <dx:ASPxCheckBox ID="chkCb" runat="...

Forzar la entrada en una caja de texto en mayúsculas (o minúsculas)

Para forzar la entrada de texto en una caja de texto de ASP.NET en solo mayúsculas, solo hay que agregar el siguiente código en el evento onkeyup de la caja de texto: this.value=this.value.toUpperCase() ; El markup de la caja de texto completo debe quedar de la siguiente manera:  <asp:TextBox ID="txtBoardCode" runat="server" onkeyup="this.value=this.value.toUpperCase();" ValidationGroup="HarnessValidationGroup">  </asp:TextBox> NOTA: Este código funciona igual para las minúsculas, solo hay que cambiar la function por toLowerCase() ;

Obtener el valor de un control ASPxSpinEdit dentro de un ASPxGridView

Para obtener el valor de un control ASPxSpinEdit dentro de un ASPxGridView -Agregar un control ASPxSpinEdit dentro del DataItem Template -Hacer que se muestren los datos de la fuente poniendo en el atributo value la expressión siguiente: ' <%# Bind("GroupCode") %> '  donde GroupCode es el nombre de la columna en la fuente de datos. -Hacer que el evento ValueChanged se procese en el servidor agregando lo siguiente en los eventos del cliente:   <ClientSideEvents ValueChanged="function(s, e) {  e.processOnServer = true; }" /> El markup completo de la columna quedaría así: <dx:GridViewDataTextColumn Caption="Grupo" FieldName="GroupCode" ShowInCustomizationForm="True" VisibleIndex="4">    <PropertiesTextEdit DisplayFormatInEditMode="True" DisplayFormatString="g">    </PropertiesTextEdit>    <DataItemTemplate>       <dx:ASPxSpinEdit ID="spinEdi...

Como escoger entre ViewState, Session, Cache y Cookies

Problemas con Aplicaciones Web Las aplicaciones web son sin estado, lo que significa que una vez una página web es enviada desde servidor, nada permanece en el servidor y la próxima vez que el usuario actualiza la página, esta página será creada desde cero. ASP.NET proporciona las siguientes soluciones para resolver este problema: 1- El ViewState . 2- Las variables de sesión. 3- Las variables de aplicación. 4- La memoria caché . 5- Las cookies . Ahora surge la pregunta: ¿cuándo utilizar qué? 1- El ViewState. El ViewState es un campo oculto en una página ASP.NET , y contiene el estado de esos controles en una página cuya propiedad " EnableViewState " es " true ". También puede agregar explícitamente los valores en ella, como el siguiente ejemplo: Viewstate.Add ("YearOrders", "5887"); El ViewState se debe utilizar cuando se quiere pasar un valor entre diferentes peticiones al servidor de una sola página y sus valores no son accesibles...

Agregar un CustomButton a un ASPXGridview

Para agregar un CustomButton es necesario crear la columna, esto se puede hacer abriendo el markup de la página y agregando entre las etiquetas < Columns > un código similar a el siguiente: <dx:GridViewCommandColumn VisibleIndex="0" ButtonType="Image">  <CustomButtons>   <dx:GridViewCommandColumnCustomButton ID="btnRemove" Image-Url="Content/Images/Remove.png" Image-Width="18px">    <Image Width="18px" Url="Content/Images/Remove.png"></Image>   </dx:GridViewCommandColumnCustomButton>  </CustomButtons> </dx:GridViewCommandColumn> Con esto quedará definida la columna y el botón, ahora solo deberemos definir el evento en el Code Behind . Para hacerlo creamos un método CustomButtonCallback , Visual Studio automáticamente creará los argumentos del evento y puede ser de la siguiente manera: protected void grvHarnessItems_CustomButtonCallback(object sender, ASPxGri...

Mostrar imágenes en una columna del ASPXGridview dependiendo de los datos contenidos en ella.

Para mostrar una imagen dependiendo de los datos de la columna es necesario seguir los siguientes pasos: Agregar una columna al grid y modificar el DataItem Template. Poner una imagen en el DataItem Template. Modificar el evento Init y modificar su propiedad ImageUrl a traves del objeto " sender " basado en los valores de la columna. NOTA: El valor de la columna es obtenido a través del método ASPxGridView.GetRowValuesByKeyValue . Ejemplo:   protected void imgStatus_Init(object sender, EventArgs e)         {             ASPxImage image = (ASPxImage)sender;             GridViewDataItemTemplateContainer container = (GridViewDataItemTemplateContainer)image.NamingContainer;             String value = grvHarnessItems.GetRowValuesByKeyValue(container.KeyValue, "ObjStatSt...

Renombrar un proyecto/Solucion

Para renombrar una solución y/o proyecto .NET seguir los siguientes pasos: Click con el botón derecho en la solución y renombrarla. Click con el botón derecho en el proyecto y renombrarlo. Doble click en el folder properties, click en la pestaña Application y renombrarlo. Renombrar el directorio donde está la solución, después abrir el archivo . sln en notepad y editar los path a los archivos . csproj , vbproj , etc para que coincidan con la nueva ruta. Revisar los atributos Inherits en las directivas de las páginas aspx . Cambiar todas las referencias al viejo namespace en las clases del proyecto. Referencia:  http://forums.asp.net/t/1810215.aspx

Android KitKat no mantiene el password cuando se usa el protocolo LEAP

Android guarda la información de autenticación en el archivo /data/misc/wifi/wpa_supplicat.conf y normalmente al cambiar la  contraseña  de la red solo es necesario editarlo para modificarlo acorde al de nuestra red. En Android 4.4.4 (al parecer desde la versión 4.4.2) modificar la  contraseña  en este archivo y tratar de conectarse a la red wifi, android restablece la contraseña anterior en el archivo y por lo tanto no podemos conectarnos a nuestra red. Para poder modificarla con éxito es necesario seguir los siguientes pasos: Respaldar el archivo wpa_supplicant.conf. Modificar la contraseña. Borrar/Renombrar el folder /data/misc/DHCP. Reiniciar el teléfono. Después de esto el teléfono se conectará de manera normal. NOTA: Para esto es necesario tener nuestro teléfono desbloqueado (rooted).

Eliminar registros repetidos de una DataTable

A continuación les muestro un ejemplo de como eliminar los registros repetidos de una DataTable . //DataTable con los reqistros repetidos (myRepeatedData) //Filtramos los registros únicos en la variable var. var uniqueRows = myRepeatedData.AsEnumerable().Distinct(DataRowComparer.Default); //Lo copiamos a otra DataTable DataTable myUniqueData = uniqueRows.CopyToDataTable(); Con esto tendremos en la DataTable myUniqueData los registros únicos.

Mapear un campo de fecha nullable a un atributo de una clase

Cuando tenemos un código como el siguiente: if (dt.Rows.Count > 0)      {       this._holderID = int.Parse(dt.Rows[0]["holder_id"].ToString());       this._item = int.Parse(dt.Rows[0]["item"].ToString());       this._holderType = dt.Rows[0]["htype_id"].ToString();       this._qty = int.Parse(dt.Rows[0]["qty"].ToString());       this._prodID =int.Parse(dt.Rows[0]["prod_id"].ToString());       this._woID =int.Parse(dt.Rows[0]["wo_id"].ToString());       this._stat = Stat.Loaded;      } en el cual tratamos de mapear los campos prod_id y wo_id a las variables _prodID y _woID de un objeto nos provoca un error al tratar de pasar un string vacio a entero en el caso de que ese campo de la tabla este vacío, tal y como se muestra en la siguiente figura: La solución es muy simple solo hay que comprobar primero si el campo esta vacío, en ese ca...

Agregar una Columna a un ASPxGridview (Devexpress)

Si allguna vez deseamos agregar una columna a un Grid de Devexpress en modo de ejecución se hace de la siguiente manera:             GridViewDataTextColumn col = new GridViewDataTextColumn();             col.Caption = "New";             col.FieldName = "New";             col.UnboundType = DevExpress.Data.UnboundColumnType.String;             col.VisibleIndex = ASPxGridView1.VisibleColumns.Count;             ASPxGridView1.Columns.Add(col);

Como crear la estructura de una DataTable

Agunas veces necesitamos crear un datatable que no necesariamente venga de una base de datos. Esto se hace de la siguiente manera: //Creamos el objeto DataTable DataTable tabla = new DataTable(); //Creamos el objeto Columna DataColumn columna ; //Creamos el objeto Renglon DataRow renglon; //Creamos las columna s necesarias y las agregamos a la tabla columna = new DataColumn(); columna .ColumnName = "Campo1" ; columna .DataType = System.Type.GetType( "System.Int32" ); tabla.Columns.Add( columna ); columna = new DataColumn(); columna .ColumnName = "Campo2" ; columna .DataType = System.Type.GetType( "System.String" ); tabla.Columns.Add( columna ); Con esto ya tenemos un DataTable de nombre tabla con dos campos: El campo " Campo1 " de tipo Int32 y el " Campo2 " de tipo String . A continuacion les pongo las propiedades que pueden usar en el objeto Columna : AllowDBNull Acepta un valo...

Agregar un campo con autoincremento a un DataGridView

Cuando necesitemos agregar una columna a nuestro DataGridView que solo nos enumere los renglones que despliega solo es necesario agregar el siguiente codigo al markup donde esta definido nuestro DataGridView: < Columns > < asp : TemplateField HeaderText ="#"> < ItemTemplate > <% # Container.DataItemIndex + 1 %> </ ItemTemplate > </ asp : TemplateField > </ Columns > con esto se agregara una columna con el encabezado # y que contendra el numero de renglon de cada DataRow.

Agregar una columna autonumerica a un DataTable

Para agregar una columna autonumerica a un DataTable es necesario crear un objeto DataTable y un objeto Column que tenga la propiedad AutoIncrement en true y luego mezclarlo con el DataTable que deseamos como en el siguiente ejemplo: DataTable myDt = new DataTable(); DataColumn dc = new DataColumn(); dc.ColumnName = "#" ; dc.DataType = typeof ( int ); dc.AutoIncrement = true ; dc.AutoIncrementSeed = 1; dc.AutoIncrementStep = 1; BoardCode bc = new BoardCode(); DataTable dt = bc.GetHoldersByBcID( int .Parse( this .TextBox1.Text)); myDt.Columns.Add(dc); myDt.Merge(dt); this .GridView1.DataSource = myDt; this .GridView1.DataBind(); Asi, cuando la despleguemos en un DataGridView se mostrara en la primera columna con un contador de renglones.