ciao,
quando il datagrid è in modalità di modifica, setta i textbox di una lunghezza, sapete come rimpicciolirli? vorrei impostare il width del textbox in modalità di modifica
grazie
ciao,
quando il datagrid è in modalità di modifica, setta i textbox di una lunghezza, sapete come rimpicciolirli? vorrei impostare il width del textbox in modalità di modifica
grazie
se il tuo controllo textbox lo hai messo in na templatecolumn con l'edititemtemplate basta che nel tuo
<asp:textbox metti la width="come vuoi tu" e il text='<%#container.dataitem("nome_tuo_campo") %>'
ma i bound si trasformano in textbox, però i boundcolumn non posso metterli dentro ad un template.
<asp:TemplateColumn HeaderText="Proroga">
<ItemTemplate>
che ci devo mettere?
</ItemTemplate>
<EditItemTemplate>
<asp:textbox width="20" text='<%#container.dataitem("proroga") %></asp:textbox>
</EditItemTemplate>
</asp:TemplateColumn>
ci metti lo stesso
<%#container.dataitem("proroga") %>
e nell'edititemtemplate puoi metterci quello che vuoi:
o lo stesso textbox oppure tutto quello che vuoi metterci compreso dropdownlist, button, etc, etc perchè sei in modalità di modifica e a volte si rende utile metterci qualcos'altro rispetto alla visualizzazione iniziale del datagrid
tutto bene, però quando vado in modalità di modifica, non riesco a far visualizzare il valore dentro al textbox.
la proprietà text non c'è. perciò per riempire un text box ho dovuto fare cosi:
<asp:TemplateColumn HeaderText="Monto Bs."> <ItemTemplate>
<%# Container.DataItem("ammontare") %>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="Textbox1" Runat="server" Width="40" Enabled="False"><%# Container.DataItem("ammontare") %></asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
ma facendo cosi ricevo questo errore:
'TextBox' non può avere elementi figlio di tipo 'DataBoundLiteralControl'.
e si riferisce al EditItemTemplate
Prova gli apici singoli.
'<%# Container.DataItem("ammontare") %>'
Ciao
Legnetto
si ti sei dimenticato gli apici e non lo mettere così:
<asp:TextBox ID="Textbox1" Runat="server" Width="40" Enabled="False"><%# Container.DataItem("ammontare") %></asp:TextBox>
ma metti il risultato che vuoi ottenere direttamente nel text:
<asp:textbox metti la width="come vuoi tu" e il text='<%#container.dataitem("nome_tuo_campo") %>'
inoltre, puoi aggiungere l'evento onitemdatabound al controllo datagrid per settare gli eventuali ulteriori controlli aggiunti in fase di modifica della cella stessa:
Sub Datagrid_itemDataBound(s as object, e as DatagridItemEventargs)
if e.item.itemType = ListItemType.EditItem Then
Dim myDataReader as SqlDataReader(puoi fare anche altre connessioni)
Dim myTextBox as TextBox
Dim myDropdownlist as DropdownList
etc etc
poi fai il findControl per trovarlo nel datagrid:
es: myDropdownlist = CType(e.Item.FindControl("nome_ID_Dropdownlist"), Dropdownlist)
e nel DataGrid aggiungi: OnItemDataBound="Datagrid_itemDataBound"
perfetto Susin ti ringrazio
PS: però quello che mi risutla strano è che la proprietà Text non me la ritrova nel menu a tendina che esce fuori quando scrivo, mi sapreste dire il perchè?
ora avendo messo un Template, non riesco a fare il confronto:
If CType(E.Item.Cells(5).Controls(0), TextBox).Text <> CType(E.Item.Cells(4).Controls(0), TextBox).Text Then
perchè?