Visual Basic.NET - Urgente ayuda con datagrid dinamico con textbox

   
Vista:

Urgente ayuda con datagrid dinamico con textbox

Publicado por Pilar Bojaca (1 intervención) el 22/02/2008 03:16:36
Hola,

Tengo un gran problema y no se como solucionarlo. He creado un datagrid totalmente dinamico, es decir su numero de columnas y de filas, depende de un numero de registros en base de datos, y lo que hay dentro del datagrid son cajas de texto para ser llenadas con numeros.

Lo que hice para esto fue implementar la clase ITEMPLATE, asi:

Public Class DataGridTemplate

Implements ITemplate
Dim templateType As ListItemType
Dim columnName As String
Dim datasett As DataSet
Dim i As Integer

Sub New(ByVal type As ListItemType, ByVal ColName As String, ByVal datasetV As DataSet)
templateType = type
columnName = ColName
datasett = datasetV

End Sub

Sub InstantiateIn(ByVal container As Control) _
Implements ITemplate.InstantiateIn
Dim lc As New Literal()
Select Case templateType
Case ListItemType.Header
lc.Text = "<B>" & columnName & "</B>"
container.Controls.Add(lc)
Case ListItemType.Item
lc.Text = "Item " & columnName
container.Controls.Add(lc)
Case ListItemType.EditItem
Dim tb As New TextBox()
tb.ID = columnName
tb.Style("width") = "40px"
tb.text = "00"
container.Controls.Add(tb)
Case ListItemType.Footer
lc.Text = "<I>Footer</I>"
container.Controls.Add(lc)
End Select
End Sub

End Class

Y lo uso asi:

Dim bc2 As New TemplateColumn()
bc2.HeaderTemplate = New DataGridTemplate(ListItemType.Header, dts.Tables(0).Rows(i).Item(1), dts)
bc2.ItemTemplate = New DataGridTemplate(ListItemType.EditItem, dts.Tables(0).Rows(i).Item(2), dts)
DataGridPlanta.Columns.Add(bc2)

En vez de tb.text = "00", yo necesito que me traiga en tiempo de ejecucion unos valores traidos de base de datos, segun una seleccion que hago.
Si yo lo hiciera de forma fija lo hacia asi:

<asp:TextBox id=txtPrimaria runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Primaria") %>' Width="40px" />

la pregunta es como colocar esa expresion de evaluacion databinder.eval con sus parametros dinamicos dentro de tb.text en esta implementacion ?

Espero haber sido clara en la duda. Muchas gracias por la colaboracion que me puedan prestar ya que he buscado y no he encontrado como se hace, y soy nueva en .NET
MI correo es mpily@hotmail.com
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Urgente ayuda con datagrid dinamico con textbox

Publicado por Willy Olortegui Arauzo (1 intervención) el 27/08/2009 23:26:07
Hola, Estaba navegando y me encontre con tu duda, se que ha pasado mucho tiempo pero si conoces alguien que necesite hay le va.

Puedes enlazar, el evento RowDataBound de la grilla, este evento se dispara luego de que llamas al metodo DataBind de tu control, es decir cuando has enlazado la data.
Bueno pues puedes parsear buscar la columna que querias llenar y ya estaria!!!

Protected Sub dgvProdDesgravamen_RowDataBound(ByVal sender As System.Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles dgvProdDesgravamen.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
Dim entidad As Entidad.ESiniestro = CType(e.Row.DataItem, Entidad.ESiniestro)
If dgvProdDesgravamen.EditIndex <> -1 Then
Dim myCell As DataControlFieldCell = CType(e.Row.Cells(1), DataControlFieldCell)
myCell.Text = entidad.NombreMoneda
Else
Dim _controlField As DataControlFieldCell = CType(e.Row.Cells(1), DataControlFieldCell)
_controlField.Text = entidad.NombreMoneda
End If
End If
End Sub

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar