none
Controles Enlazados: Vincular Datos De Un DataTable A Controles Web RRS feed

  • Pregunta

  • ASP.NET 3.5 / Visual C# 2010

    Hola a todos

    Se obtienen datos desde una Base De Datos y se almacenan en un DataTable.

    Se tienen Controles Web (por ejemplo, TextBox) los cuáles deben mostrar los Datos Almacenados en las Celdas [Campos] del Registro Actual del DataTable. En Aplicaciones De Escritorio (Windows Forms) se aplica un código como el siguiente:

    	textBox1.DataBindings.Add(new Binding("Text", ds, "customers.custName"));

    ¿Cómo realizar esta Tarea en ASP.NET?

    Desde ya Muchísimas Gracias


    Skar.2007

    domingo, 12 de julio de 2015 14:45

Respuestas

  • [...] deben mostrar los Datos [...] del Registro Actual del DataTable.

    ¿Cómo realizar esta Tarea en ASP.NET?

    NO EXISTE "registro actual" en un DataTable. En un formulario de una aplicación de escritorio, el registro actual lo guarda el BindingContext (en cualquiera de sus variantes), no el DataTable. Pero en asp.net no existe ese "binding context", así que no puedes usar el mismo mecanismo que en la aplicación de escritorio.

    Podrías salvar el número del registro que tú consideres "actual" en una variable, y esta variable preservarla en el Session (ya que en una aplicación web, a diferencia de una de escritorio, se pierden todas las variables en cada postback). Y luego, durante el Page_Load, cuando reconstruyas el DataTable (que también se pierde en cada postback), separas el registro que indique la variable del Session y lo pintas en los textboxes que deseabas.

    Pero nótese que este es un diseño poco eficiente para una aplicación web, debido precisamente a la destrucción de la clase y de todas sus variables a cada postback. Es ineficiente construir todo el datatable para mostrar un solo registro en pantalla. Sería mejor que hicieras un Select del único registro que vas a mostrar, para traer sólo esos datos desde la base de datos.

    domingo, 12 de julio de 2015 16:29

Todas las respuestas

  • [...] deben mostrar los Datos [...] del Registro Actual del DataTable.

    ¿Cómo realizar esta Tarea en ASP.NET?

    NO EXISTE "registro actual" en un DataTable. En un formulario de una aplicación de escritorio, el registro actual lo guarda el BindingContext (en cualquiera de sus variantes), no el DataTable. Pero en asp.net no existe ese "binding context", así que no puedes usar el mismo mecanismo que en la aplicación de escritorio.

    Podrías salvar el número del registro que tú consideres "actual" en una variable, y esta variable preservarla en el Session (ya que en una aplicación web, a diferencia de una de escritorio, se pierden todas las variables en cada postback). Y luego, durante el Page_Load, cuando reconstruyas el DataTable (que también se pierde en cada postback), separas el registro que indique la variable del Session y lo pintas en los textboxes que deseabas.

    Pero nótese que este es un diseño poco eficiente para una aplicación web, debido precisamente a la destrucción de la clase y de todas sus variables a cada postback. Es ineficiente construir todo el datatable para mostrar un solo registro en pantalla. Sería mejor que hicieras un Select del único registro que vas a mostrar, para traer sólo esos datos desde la base de datos.

    domingo, 12 de julio de 2015 16:29
  • hola

    asi tal cual como lo planteas no se puede lograr, lo mas parecido podria ser usando un control DetailsView

    este permite representar en el template un item simple de un origen de datos

    igual no es que definas un DataBindings como lo planteas, sino mas bien que el binding se logra por medio del template en html donde podrias usar el

    <asp:TextBox ...  Text='<%# Eval("custName")%>' />

    esto dentro del template del detailsview

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    lunes, 13 de julio de 2015 4:57