Inserire da codice un TextBox in un TemplateField di un GridView

martedì 29 dicembre 2009 - 16.30

sorigrafia Profilo | Junior Member



Ciao a tutti...vorrei riuscire ad inserire da codice (VB) un TextBox in un campo TemplateField di un GridView
Son riuscito a creare il campo ma non a inserire un textBox all' interno del Item Style

Per ora sono messo così:

Dim COL_GRID_QTA As New TemplateField
COL_GRID_QTA.HeaderText = "QTA_" & COL_QTA
COL_GRID_QTA.ItemStyle.Width = 100
COL_GRID_QTA.ItemStyle.HorizontalAlign = HorizontalAlign.Center

Dim TextBoxQta As ComponentModel.......... (????????????)
COL_GRID_QTA.ItemStyle.Container.Add(TextBoxQta) (????????????...mi da errore)

Me.GridView2.Columns.Add(COL_GRID_QTA)

Come devo fare?
Grazie mille!

--

AirLainz

alx_81 Profilo | Guru

>Ciao a tutti...vorrei riuscire ad inserire da codice (VB) un
>TextBox in un campo TemplateField di un GridView
Ciao

>Come devo fare?
Secondo me devi agire sulla proprietà ItemTemplate, esattamente come fai da codice ASP.Net:
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.templatefield.itemtemplate(VS.80).aspx

Però segui questo walkthrough, mi sembra ottimo:
http://msdn.microsoft.com/en-us/library/aa289501(VS.71).aspx

>Grazie mille!
di nulla!
--

Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

sorigrafia Profilo | Junior Member

Ciao....dopo assere riuscito anche grazie ai tuoi aiuti a creare la mia GridView con colonne a seconda dai dati che ho, avrei bisogno di sapere come fare per poter controllare gli eventi come se fossero oggetti gia inseriti nella GridView.

Mi spiego meglio:
Fino ad ora avevo le mie GridView con gli oggetti all' interno e se avessi voluto catturare gli eventi mi bastava chiamare gli OnLoad, OnPreRender, OnSelected....etc...da codice pagina.aspx (OnSelectedIndexChanged="ddl_ST_OnSelectedIndexChanged") con in questo caso la sub "ddl_ST_OnSelectedIndexChanged" nel codice aspx.vb.

Ma ora nella GridView della pagina .aspx non ho gli oggetti perche li creo da aspx.vb e qui ho bisogno di aggiungere l' evento OnTexChanged ai textBox che aggiungo nelle TemplateColumn.

E' quando ho la mia classe per aggiungere i textbox che ho bisogno di creare l' evento: (???)
Sub InstantiateIn(ByVal container As Control) Implements ITemplate.InstantiateIn
Dim textbox As New TextBox()
TextBox.Text = "0"
.... ???
.... ???
End Sub

Ho letto e provato diverse strade con Add.EventHandler ( ????addhandler textbox.textchanged???) ma senza riuscire a controllare l' evento di modificadel testo dei textbox.
Che strada devo prendere?

PS Ho notato anche che la proprietà AutoPostBack a True fa si che la pagina si ricarichi ma essendo il
If Me.IsPostBack della pagina a True non la ricarica e rimane bianca...


Grazie mille
--

AirLainz

alx_81 Profilo | Guru

>Ciao....dopo assere riuscito anche grazie ai tuoi aiuti a creare
>la mia GridView con colonne a seconda dai dati che ho, avrei
>bisogno di sapere come fare per poter controllare gli eventi
>come se fossero oggetti gia inseriti nella GridView.
Intanto ti consiglio di aprire un nuovo thread perchè non credo di poterti dire molto di più di quanto hai trovato.

>E' quando ho la mia classe per aggiungere i textbox che ho bisogno di creare l' evento: (???)
Sì, con il metodo AddHandler (http://visualbasic.about.com/b/2006/12/13/using-addhandler-and-addressof.htm)
come hai già detto tu.

>PS Ho notato anche che la proprietà AutoPostBack a True fa si
>che la pagina si ricarichi ma essendo il
>If Me.IsPostBack della pagina a True non la ricarica e rimane
>bianca...
Questo forse perchè non fai il rebind della griglia nel caso in cui ci sia il postback?
--

Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5