Foros del Web » Programación para mayores de 30 ;) » .NET »

databinding en tiempo de ejecucion

Estas en el tema de databinding en tiempo de ejecucion en el foro de .NET en Foros del Web. hola, alguien podria decirme que significa la siguiente linea de codigo C#? ((DateTime)date).ToShortDateString(); y como escribir lo mismo per en VB.Net? muchas gracias....
  #1 (permalink)  
Antiguo 26/10/2005, 17:00
 
Fecha de Ingreso: abril-2003
Mensajes: 66
Antigüedad: 21 años
Puntos: 0
databinding en tiempo de ejecucion

hola,

alguien podria decirme que significa la siguiente linea de codigo C#?

((DateTime)date).ToShortDateString();

y como escribir lo mismo per en VB.Net?


muchas gracias.
  #2 (permalink)  
Antiguo 26/10/2005, 20:55
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 3 meses
Puntos: 7
Lo que hace es "convertir" la variable date al tipo DateTime, luego mostrar esa fecha en el formato mm/dd/yyyy (eso depende de la configuración regional de la aplicación).
En vb.net sería más o menos así:
CType(date, DateTime).ToShortDateString()

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #3 (permalink)  
Antiguo 27/10/2005, 11:20
 
Fecha de Ingreso: abril-2003
Mensajes: 66
Antigüedad: 21 años
Puntos: 0
DataBinding

Gracias xknown.

mira, mi problema es en realidad el siguiente, tengo una pagina en la que presento un DataGrid, y una de sus columnas es un template:

00: <ItemTemplate>
01: <a class="lnkSml" href='pagina.aspx?p=<%# databinder.eval(container.Dataitem, "FullName")%>'> Vinculo_1 </a>
03: </ItemTemplate>

cree un control web compuesto, con la misma funcion que la pagina mencionada, el cual contien entre otros objetos un DataGrid, pero al intentar crear la columna template, no se como vincularle el Container.DataItem, la linea 04 me marca un error:'DataItem' no es miembro de 'System.Web.UI.Control'

(Parte del codigo de la clase que implementa ITemplate para crear la columna Template)
00: Public Sub InstantiateIn(ByVal Container As Control) Implements System.Web.UI.ITemplate.InstantiateIn
01: Dim lc As New Literal
02:
04: lc.Text = "<a href='pagina.aspx?p=" & DataBinder.Eval(Container.dataitem, columnName) & "'> Vinculo_1 </a>"
05:
06: Container.Controls.Add(lc)
07:
08: End Sub


Me gustaria saber como puedo a traves de codigo realizar ese Binding.

muchas gracias.
  #4 (permalink)  
Antiguo 27/10/2005, 11:57
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 3 meses
Puntos: 7
Se podría decir más cosas si pusieras el código relacionado...

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño

Última edición por xknown; 27/10/2005 a las 12:03
  #5 (permalink)  
Antiguo 27/10/2005, 14:31
 
Fecha de Ingreso: abril-2003
Mensajes: 66
Antigüedad: 21 años
Puntos: 0
xknown,

Esta es la clase que intento crar para la generacion del TemplateColumn, funciona perfectamente, el problema viene cuando intento usar el Container.DataItem para vincular la columna con un campo de su datasource



Public Class ColumnTemplate
Implements ITemplate

Dim templateType As ListItemType
Dim columnName As String

'Constructor
Public Sub New(ByVal type As ListItemType, ByVal colname As String)
templateType = type
columnName = colname
End Sub

Public Sub InstantiateIn(ByVal Container As Control) Implements System.Web.UI.ITemplate.InstantiateIn
Dim lc As New Literal

'En esta parte intento crear la columna template pero binculada con el Container.DataItem
lc.Text = "<a href='pagina.aspx?dir=" & DataBinder.Eval(Container.dataitem, Me.columnName) & "'> Vinculo_1 </a>"

Container.Controls.Add(lc)

End Sub
End Class



Espero esto sea suficiente, gracias.
  #6 (permalink)  
Antiguo 27/10/2005, 15:22
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 3 meses
Puntos: 7
Creo que sería así:
Código:
Public Class ColumnTemplate
    Implements ITemplate

    Dim columnName As String

    'Constructor
    Public Sub New(ByVal colname As String)
        columnName = colname
    End Sub

    Sub OnDataBound(ByVal sender As Object, ByVal e As EventArgs)
        Dim ctrl As HtmlControls.HtmlAnchor = CType(sender, HtmlControls.HtmlAnchor)
        Dim Container As DataGridItem = CType(ctrl.NamingContainer, DataGridItem)
        ctrl.HRef = String.Format("pagina.aspx?dir={0}", Container.DataItem(columnName))
    End Sub

    Public Sub InstantiateIn(ByVal container As Control) Implements System.Web.UI.ITemplate.InstantiateIn
        Dim lnk As New HtmlControls.HtmlAnchor

        AddHandler lnk.DataBinding, AddressOf Me.OnDataBound
        lnk.InnerText = "Vinculo_1"
        Container.Controls.Add(lnk)
    End Sub
Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #7 (permalink)  
Antiguo 27/10/2005, 16:52
 
Fecha de Ingreso: abril-2003
Mensajes: 66
Antigüedad: 21 años
Puntos: 0
ya, permiteme por favor lo verifico y te respondo a la brevedad posible... muchisimas gracias por tu ayuda hasta ahora.

Saludos
  #8 (permalink)  
Antiguo 28/10/2005, 07:27
 
Fecha de Ingreso: abril-2003
Mensajes: 66
Antigüedad: 21 años
Puntos: 0
xknown, ejecute tu codigo pero me genera el siguiente error:

No se encontró ningún miembro predeterminado para el tipo 'DirectoryInfo'.

en la linea:

ctrl.HRef = String.Format("pagina.aspx?dir={0}", Container.DataItem(columnName))


alguna idea de que pudiera estar ocurriendo??

muchas gracias. Saludos.
  #9 (permalink)  
Antiguo 28/10/2005, 07:42
 
Fecha de Ingreso: abril-2003
Mensajes: 66
Antigüedad: 21 años
Puntos: 0
Se supone que el DataSource del DataGrid es un DirectoryInfo, o sea, recupero todos los directorios contenidos en un directorio padre y los muestro en el grid.
Espero me este explicando.

Gracias.
  #10 (permalink)  
Antiguo 28/10/2005, 07:54
 
Fecha de Ingreso: abril-2003
Mensajes: 66
Antigüedad: 21 años
Puntos: 0
Lo he resuelto, remplace la linea que genera el error por esta:

ctrl.HRef = String.Format("pagina.aspx?dir={0}", DataBinder.Eval(Container.DataItem, "Name"))

Muchas gracias por tu ayuda... ahora, seria mucho pedir que por favor expliques los siguientes procedimientos?

Sub OnDataBound(ByVal sender As Object, ByVal e As EventArgs)
Dim ctrl As HtmlControls.HtmlAnchor = CType(sender, HtmlControls.HtmlAnchor)
Dim Container As DataGridItem = CType(ctrl.NamingContainer, DataGridItem)
ctrl.HRef = String.Format("pagina.aspx?dir={0}", DataBinder.Eval(Container.DataItem, "Name"))
End Sub

Public Sub InstantiateIn(ByVal container As Control) Implements System.Web.UI.ITemplate.InstantiateIn
Dim lnk As New HtmlControls.HtmlAnchor

AddHandler lnk.DataBinding, AddressOf Me.OnDataBound
lnk.InnerText = "Vinculo_1"
container.Controls.Add(lnk)
End Sub


muchisimas gracias por tu tiempo.

Saludos de antemano.
  #11 (permalink)  
Antiguo 28/10/2005, 10:55
 
Fecha de Ingreso: abril-2003
Mensajes: 66
Antigüedad: 21 años
Puntos: 0
No te preocupes por explicarlos, ya los entendi, bueno, eso creo, muchisimas gracias por tu ayuda.

Saludos.

fvilla
  #12 (permalink)  
Antiguo 28/10/2005, 11:50
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 3 meses
Puntos: 7
Tampoco pensaba hacerlo

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:14.