tutorial sintaxis que mvc español asp.net user-controls ajaxcontroltoolkit detailsview

asp.net - sintaxis - El control de usuario retiene el foco incorrectamente después de la devolución de datos modificada cuando UC está dentro de un control de vista de detalles



razor mvc (2)

Entonces, ¿está diciendo que su tenencia de control (parcial) es:

UpdatePanel > TGANumeric:GANumeric > UpdatePanel > TextBox

Esta es una gran cantidad de sobrecarga para simplemente formatear un número con una coma, que es la única razón por la que veo para su publicación. Por lo que puedo decir, no hay nada que necesites del servidor, ¿por qué publicar?

¿O está ahí?

Mis pensamientos, perder los paneles de actualización, deshabilitar el AutoPostback en el cuadro de texto, manejar el lado del cliente de formateo si debe verse de inmediato, o dejar el formato en el campo DetailsView DataStringFormat cuando se publica después de guardar.

Apuesto a que esto aclarará cualquier problema de enfoque.

Hago referencia a una publicación anterior: foco perdido en la devolución de datos parcial con UserControls dentro de UpdatePanel, donde una excelente solución funciona perfectamente para los controles de la página web dentro de un formulario. Sin embargo, he colocado mi UC dentro de un campo de plantilla de vista detallada (para Editar + Insertar).

La UC contiene un UpdatePanel necesario para ajustar el formato de texto y el / los estilo (s) del control después del evento TextChanged del cuadro de texto UC (AutoPostback = True) durante el modo de edición y los modos de inserción de DetailsView.

Como tal, cuando el control DetailsView está en modo Edit y el usuario cambia el texto en el UC, el evento textchanged se dispara y el valor ingresado por el usuario se valida y cuando está OK, los thousounds-separator (coma) se agregan al UC-textbox-text, PERO, el foco se mueve al siguiente campo en DetailsView y vuelve RÁPIDAMENTE al control UC.

Este movimiento (s) de foco incorrecto NO se produce cuando la UC se envuelve en paneles de actualización como se indica en la publicación referenciada, ya que el orden de foco y tabulación funciona perfectamente fuera del control DetailsView.

Aquí está el marcado aspx para el campo-plantilla-EDITAR (solo).

<asp:TemplateField HeaderText="Initial Mileage" SortExpression="IMilage"> <EditItemTemplate> <asp:UpdatePanel ID="updpnlIMilage" runat="server" UpdateMode="Conditional" > <ContentTemplate> <TGANumeric:GANumeric ID="ucnumIMileage" runat="server" Caption="Initial Mileage" HideCaption="True" Width="160" DisplayMask="999,999" InputMask="999999" Enabled="True" IsRequired="False" MinNumber="0" MaxNumber="999999" Text=''<%# Bind("IMilage") %>'' TabIndex="0" /> </ContentTemplate> <Triggers> <asp:AsyncPostBackTrigger ControlID="ucnumIMileage" /> </Triggers> </asp:UpdatePanel> </EditItemTemplate>

Gracias por adelantado. Sus comentarios son bienvenidos Gracias ... J.


En función de todos los comentarios en este hilo, quiero explicar la causa real del error de tabulación.
1) No hubo problemas de codificación o eventos con el usuario-control.

2) No hubo problemas de codificación o eventos con la superposición de la página maestra, la página de contenido, los paneles de actualización Ajax / paneles de actualización anidados, la vista de detalles y los campos de plantilla que contienen el control de usuario.

3) El verdadero culpable era un pequeño fragmento de código donde la página ajusta los controles web en el formulario en función del "estado" (estado) de la página / formulario. Gestiono el ajuste de los controles web visibles y / o de habilitación en una única subrutina en el código subyacente, de modo que toda esta habilitación / deshabilitación visible / no visible se produce en un lugar bajo un conjunto de sentencias CASE. El fragmento de código erróneo real dentro del método ''sbSetFormState ()'' estaba jugando con la variable de clase ''m_eFormState'' que en realidad provocó que el panel de actualización volviera a dispararse y, por lo tanto, las pestañas salieron de la secuencia.

Esto fue descubierto por la gran sugerencia de ''fnostro'' para eliminar o agregar funcionalidades hasta que el mal comportamiento se expone. Marcaré este tema como resuelto / cerrado. De nuevo, gracias a fnostro !!!