Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    DataGrid: modalità modifica

    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

  2. #2
    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") %>'

  3. #3
    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>

  4. #4
    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

  5. #5
    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

  6. #6
    Utente di HTML.it L'avatar di Legnetto
    Registrato dal
    May 2002
    Messaggi
    1,419
    Prova gli apici singoli.
    '<%# Container.DataItem("ammontare") %>'
    Ciao
    Legnetto

  7. #7
    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") %>'

  8. #8
    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"

  9. #9
    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è?

  10. #10
    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è?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.