7
¿Cómo agrego una columna TextBox a un GridView desde el código?Agregar cuadro de texto TemplateField Columna a GridView mediante programación
¿Cómo agrego una columna TextBox a un GridView desde el código?Agregar cuadro de texto TemplateField Columna a GridView mediante programación
Use TemplateField y agregue un TextBox a la plantilla ItemTemplate/EditItem.
<ItemTemplate>
<asp:TextBox ID="TxtFirstName" runat="server" Text='<%# Bind("FirstName") %>'></asp:TextBox>
</ItemTemplate>
Puede obligar a éste en el aspx como en el ejemplo anterior, o en GridView.RowDataBound:
Private Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound
Select Case e.Row.RowType
Case DataControlRowType.DataRow
Dim dr As DataRow = DirectCast(DirectCast(e.Row.DataItem, DataRowView).Row)
Dim TxtFirstName As TextBox = DirectCast(e.Row.FindControl("TxtFirstName"), TextBox)
TxtFirstName.Text = dr("FirstName").ToString
End Select
End Sub
Editar: Aquí es un ejemplo sencillo de cómo añadir un TemplateField dinámicamente:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
If Not IsPostBack Then
Dim txtColumn As New TemplateField
txtColumn.ItemTemplate = New TextColumn
Me.GridView1.Columns.Add(txtColumn)
End If
End Sub
Class TextColumn
Implements ITemplate
Public Sub InstantiateIn(ByVal container As System.Web.UI.Control) Implements System.Web.UI.ITemplate.InstantiateIn
Dim txt As New TextBox
txt.ID = "MyTextBox"
container.Controls.Add(txt)
End Sub
End Class
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.templatefield.templatefield.aspx
del código detrás !! – Raika
@Raika: Lo siento, leí esta parte;) Como primer inicio, eche un vistazo aquí: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.templatefield. templatefield.aspx –
quiero algo como esto: ** TemplateField tmp = new TemplateField(); tmp.Add (cuadro de texto); grd.Columns.Add (tmp); ** – Raika