Ir al contenido principal

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="spinEditGroup" runat="server" Height="21px"
ClientInstanceName="spinEditGroup" Value='<%# Bind("GroupCode") %>'
                                            onvaluechanged="spinEditGroup_ValueChanged" >

   <ClientSideEvents ValueChanged="function(s, e)
         { e.processOnServer = true;
   }" />
      </dx:ASPxSpinEdit>
   </DataItemTemplate>
</dx:GridViewDataTextColumn>



-Por último para leer el dato contenido dentro del control hay que hacerlo de la siguiente manera: 
GridViewDataColumn gv = this.grvHarnessItems.Columns["Grupo"] as GridViewDataColumn;
 ASPxSpinEdit spinEditGroup = this.grvHarnessItems.FindRowCellTemplateControl(i, gv, "spinEditGroup") as ASPxSpinEdit;
  miValor = spinEditGroup.Value.ToString();



El dato deseado se encontrará en la variable miValor.


Con este procedimiento se cargará la página cada vez que cambiemos el valor de un AspxSpinEdit; si deseamos hacer la captura de todos los valores dentro del ASPxSpinEdit en el cliente y obtener los valores al final (por ejemplo: al presionar el botón Grabar), no usaremos los eventos del cliente y obtendremos los valores de los controles iterando a traves de los registros del ASPxGridview tal y como se muestra en el siguiente ejemplo:

String value = String.Empty;
   if (this.grvHarnessItems.VisibleRowCount > 0)
{
      for (int i = 0; i < this.grvHarnessItems.VisibleRowCount; i++)
    {
    int rowKey;
    rowKey = Convert.ToInt32(this.grvHarnessItems.GetRowValues(Convert.ToInt32(i), "GroupCode"));

    ASPxSpinEdit spinEditGroupCode = (ASPxSpinEdit)grvHarnessItems.FindRowCellTemplateControl(i, (GridViewDataColumn)grvHarnessItems.Columns["Grupo"], "spinEditGroupCode ");
                    value += spinEditGroupCode .Text + ", ";
    }
  }



Los valores obtenidos de los controles estarán en el String value separados por comas.

Comentarios

Entradas más populares de este blog

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.

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...