631 messaggi dal 21 marzo 2008
Ciao a tutti,
vorrei inserire, al click su un button, una nuova riga ad una tabella.
Ho fatto in questo modo:

<asp:Table id="tbPeriodi" runat="server" CssClass="righaschede" Width="100%" __designer:wfdid="w33" EnableViewState="true">
<asp:TableRow runat="server" ID="trIntestazione">
<asp:TableHeaderCell runat="server" CssClass="intestazione" Width="40%"> Tariffa </asp:TableHeaderCell>
<asp:TableHeaderCell runat="server" CssClass="intestazione" Width="25%"> Dal </asp:TableHeaderCell>
<asp:TableHeaderCell runat="server" CssClass="intestazione" Width="25%"> Al </asp:TableHeaderCell>
<asp:TableHeaderCell runat="server" CssClass="intestazione" Width="10%">&nbsp;</asp:TableHeaderCell>
</asp:TableRow>
<asp:TableRow runat="server" ID="trTariffa1">
<asp:TableCell runat="server">
<asp:TextBox runat="server" Columns="35" CssClass="text_box" ID="txtNomeTariffa1"></asp:TextBox>
</asp:TableCell>
<asp:TableCell runat="server">
<asp:TextBox runat="server" Columns="10" CssClass="text_box" ID="txtDal1"></asp:TextBox>
</asp:TableCell>
<asp:TableCell runat="server">
<asp:TextBox runat="server" Columns="10" CssClass="text_box" ID="txtAl1"></asp:TextBox>
</asp:TableCell>
</asp:TableRow>
</asp:Table>

TableRow trTariffa = new TableRow();
trTariffa.ID = "trTariffa" + n_periodi;

TableCell tdTariffa = new TableCell();
TextBox txtNomeTariffa = new TextBox();
txtNomeTariffa.CssClass = "text_box";
txtNomeTariffa.Columns = 35;
tdTariffa.Controls.Add(txtNomeTariffa);

TableCell tdDal = new TableCell();
TextBox txtDal = new TextBox();
txtDal.CssClass = "text_box";
txtDal.Columns = 10;
tdDal.Controls.Add(txtDal);

TableCell tdAl = new TableCell();
TextBox txtAl = new TextBox();
txtAl.CssClass = "text_box";
txtAl.Columns = 10;
tdAl.Controls.Add(txtAl);

TableCell tdElimina = new TableCell();
ImageButton imgElimina = new ImageButton();
imgElimina.ImageUrl = "~/immagini/delete_sel.jpg";
tdElimina.Controls.Add(imgElimina);

trTariffa.Controls.Add(tdTariffa);
trTariffa.Controls.Add(tdDal);
trTariffa.Controls.Add(tdAl);
trTariffa.Controls.Add(tdElimina);

tbPeriodi.Controls.AddAt(Convert.ToInt32(n_periodi), trTariffa);

Il problema è che quando clicco, cancella la riga che ho già inserito e ne inserisce una nuova.
In pratica perde lo stato precedente della tabella.
Come posso fare?
Grazie mille
devi mantenere lo stato, ovvero ti devi memorizzare nel ViewState il numero di righe che avevi prima, ricrearle e aggiungere qualla nuova


ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
631 messaggi dal 21 marzo 2008
Ciao,
c'è un piccolo problema: ho provato con il ViewState a recuperare i valori inseriti nelle righe gia creare, ma mi da errore perchè non trova nulla.
Ho fatto in questo modo: txtNomeTariffa.Text = ViewState["txtNomeTariffa" + i.ToString()].ToString();
e per salvarlo? il ViewState naturalmente è abilitato?

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
631 messaggi dal 21 marzo 2008
Si in ViewState è abilitato.
Se noti sul codice che ho postato, la tabella inizialmente ha già una riga con delle textbox. Se inserisco dei valori nelle textbox e aggiungo una nuova riga, questi valori non spariscono.
Non capisco cosa gli prende.
631 messaggi dal 21 marzo 2008
Problema risolto.
La tabella è inserita in una pagina contenuta in una masterpage.
Per accedere ai controllo ho fatto in questo modo:
Request.Form[tabPeriodi.UniqueID + "$txtNomeTariffa" + i.ToString()]

C'è un altro modo per accedere ai controlli senza fare così? O devo sempre passare UniqueID?
si potresti usare i controlli lato server,o creartene uno ad hoc

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.