Textbox multiline nel GridView

mercoledì 18 febbraio 2009 - 10.35

paolo973 Profilo | Senior Member

Ciao a tutti,

ho una tabella contenente delle poesie in un db access, ed una pagina modifica.aspx per modificare i dati contenuti nella tabella.

Nella pagina modifica.aspx ho usato un oggetto accessdatasource e l'ho configurato per accedere alla tabella
da modificare ed un oggetto gridView con la selezione dell'origine dati che punta all'accessdatasource.

tutto funziona.

Quando accedo alla pagina modifica.aspx ed intendo modificare un record dal gridView il campo
che mi compare in tutti i campi per modificare il testo è un textbox.

DOMANDA:
come rendere multiline questo textbox?

paoval72 Profilo | Senior Member

Ciao, s eho capito bene (io programmo in C#), quel che ti serve è la proprietà "TextMode" della textbox: ti permette di scegliere tra multi line, single line o password(coi caratteri cripati).

PV


paolo973 Profilo | Senior Member

Questo è il codice del gridview,

tra le proiprietà del BoundField non trovo MULTILINE.

Come far diventare multiline il testoPoesia ?



<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True"
AutoGenerateColumns="False" BackColor="White" BorderColor="#999999" BorderStyle="None"
BorderWidth="1px" CellPadding="3" DataKeyNames="id" DataSourceID="AccessDataSource1"
GridLines="Vertical" Width="100%" >
<FooterStyle BackColor="#CCCCCC" ForeColor="Black" />
<Columns >
<asp:BoundField DataField="testoPoesia" HeaderText="testoPoesia" SortExpression="testoPoesia">
<ControlStyle Font-Size="XX-Small" ForeColor="Blue" Height="300px" />
<ItemStyle Height="300px" />
<FooterStyle Wrap="False" />
</asp:BoundField>
</Columns>
<RowStyle BackColor="#EEEEEE" ForeColor="Black" Height="50px" Font-Size="X-Small"/>

<SelectedRowStyle BackColor="#008A8C" Font-Bold="True" ForeColor="White" />

<PagerStyle BackColor="#999999" ForeColor="Black" HorizontalAlign="Center" />

<HeaderStyle BackColor="#3D63A4" Font-Bold="True" Font-Size="X-Small" ForeColor="White" />

<AlternatingRowStyle BackColor="Gainsboro" />
</asp:GridView>

paoval72 Profilo | Senior Member

Ciao. Purtroppo la boundcolumn non ha questa proprietà. Dovresti creare un ItemTemplate con una lable (sola lettura) ed un EditItemTemplate che contenga una textbox, a cui applichi poi il textMode e associ il tuo dato col bind.
PV

paoval72 Profilo | Senior Member

Ciao, cercando in rete ti ho trovato una soluzione alternativa (spero!):

http://aspdotnetcodebook.blogspot.com/2008/07/extend-boundfield-of-gridview.html

In pratica, ti crei una nuova classe per il controllo boundfield, che eredita dal webcontrol originale e implementa le funzioni di una textbox (tra le quali il numero max di righe e di colonne, il wrap e il textmode).
Poi la istanzi nella tua pagina.
A me funziona!
PV

paolo973 Profilo | Senior Member

grazie lo provo subito

paoval72 Profilo | Senior Member

Proviamo...
Ti crei una classe (in C# è un file .cs) per il controllo: volendo, puoi lasciarla sulla root principale del progetto o in una sottocartella.
Ad esempio, la chiamiamo MultiBound.
Dentro ci mettiamo il codice (per ora, paro paro quello del link che ti ho scritto: per il passo a passo di ogni riga è meglio rileggerselo):

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Passiamo alla nostra pagina:
registriamo il nostro nuovo controllo nell'aspx, aggiungendo questa riga dopo la direttiva di pagina (<%@ Page...)

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Il namespace è il namespace della tua classe, il tagPrefix è il prefisso che assegni per la tua chiamata, l'assembly è il progetto in cui andarlo a cercare.

Ora possiamo inserire il nuovo controllo nella nostra gridview:
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

In pratica, al posto del tuo asp:BoundField metti il nuovo controllo. Il resto (stili e altro) rimane invariato.
Prova e dimmi s efunziona.
PV

paolo973 Profilo | Senior Member

ok perfetto
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