Ciao a tutti,
ho qualche problema con l'inserimento e la lettura di dati in una tabella contenente textbox e label in un'applicazione ASP.NET
Ho individuato 2 metodi per farlo ma entrambi creano problemi.
- Metodo 1
riesco a recuperare i dati senza problema , ma riesco a scrivere solo sulle celle BoundField, non sulle celle TemplateField
codice della pagina aspx
codice HTML:<asp:GridView ID="GridView2" HeaderStyle-BackColor="#3AC0F2" HeaderStyle-ForeColor="White" runat="server" AutoGenerateColumns="false" OnKeyUp="GridView2_KeyUp" OnRowDataBound = "OnRowDataBound" OnSelectedIndexChanged = "OnSelectedIndexChanged" enableEventValidation="true"> <Columns> <asp:TemplateField HeaderText="p.min"> <ItemTemplate> <asp:TextBox ID="cell1" runat="server" style="width:70px;"></asp:TextBox> </ItemTemplate> </asp:TemplateField> <asp:BoundField DataField="cell2" HeaderText="cell2" ItemStyle-Width="300" />
codice della pagina cs per scrittura
codice HTML:DataTable dtable = new DataTable();dtable.Columns.AddRange(new DataColumn[14] { new DataColumn("cell1"), new DataColumn("cell2")}); dtable.Rows.Add("dati1", "dati2");
codice della pagina cs per lettura
codice HTML:TextBox txt1 = (TextBox)GridView1.Rows[cont].FindControl("cell1"); valuetest = txt1.Text;
- Metodo 2
riesco a scrivere sulle celle BoundFielde TemplateField ma non riesco a recuperare i dati dalla pagina.
codice della pagina aspx
codice HTML:<asp:Placeholder ID="PlaceHolder1" runat="server" ></asp:Placeholder>
codice della pagina cs per scrittura
codice HTML:Table tbl = new Table(); PlaceHolder1.Controls.Clear(); int tblRows = 3; int tblCols = 3; PlaceHolder1.Controls.Add(tbl); for (int i = 0; i < 3; i++){ TableRow tr = new TableRow(); for (int j = 0; j < 3; j++){ TableCell tc = new TableCell(); TextBox txtBox = new TextBox(); txtBox.ID = "tbox"+i+""+j; txtBox.Text = "tbox"+i+""+j; boxLista[j]= txtBox; // i valori non vengono modificati se modifico la tabella tc.Controls.Add(txtBox); tr.Cells.Add(tc);} tbl.Rows.Add(tr); }
codice della pagina cs per lettura
Eccezione generata: 'System.NullReferenceException'
codice HTML:TextBox txt1 = (TextBox)PlaceHolder1.FindControl("tbox01");
Grazie.

Rispondi quotando