28 messaggi dal 18 giugno 2004
Ciao a tutti, in una pagina asp.net ho creato dinamicamente una tabella con all'interno delle checkbox, tutto tramite controlli asp.net.
Funziona tutto correttamente, solo che non riesco ad intercettare il valore della checkbox dopo un post-back. Non so come fare...dopo un postback viene invocato il metodo load della pagina e poi il mio metodo: solo che il metodo pageload sovrascrive il valore selezionato della checkbox.
Grazie
Modificato da danielepes il 02 novembre 2011 17.18 -
22 messaggi dal 14 maggio 2007
Ciao,

ma tu la tabella quando la generi?
Ad occhio, mi pare che i dati vengano sovrascritti perche' tu rigeneri la tabella tutte le volte che la pagina viene caricata (con il tuo metodo).
Quindi dovresti lanciare il tuo metodo per creare la tabella sono al primo caricamento e "saltarlo" al post back.
(If Not Page.IsPostBack lo fai , If Page.IsPostBack no).

Se posti un po' di codice e' piu' semplice capire il problema.

Ciao
28 messaggi dal 18 giugno 2004
//sulla parte aspx ci sono una tabella (solo la definizione) e un pulsante



public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
this.riempiTabella();
}

}

protected void riempiTabella()
{
TableRow tr = new TableRow();
TableCell tc = new TableCell();
CheckBox cb = new CheckBox();
//cb.AutoPostBack = true;
cb.Text = "mio testo";
tc.Controls.Add(cb);

tr.Cells.Add(tc);
tabella.Rows.Add(tr);

}

//metodo legato ad un pulsante
protected void vai(object sender, EventArgs e)
{
for (int i = 0; i < tabella.Rows.Count; i++)
{
bool vf = ((CheckBox)tabella.Rows[i].Cells[i].Controls[i]).Checked;
lab.Text = vf.ToString();
}
}
}
22 messaggi dal 14 maggio 2007
Ciao,

io di C# non ne mastico molto, sorry.
Ho scritto due righe in VB per simulare quello che fai e funziona.

Creo dinamicamente una tabella con 2 righe e 2 colonne e le popolo con checkbox. Quandi schiaccio il bottone la procedura mi dice quali checkbox ho spuntato.

Vedi un po' se il codice puoi adattarlo in C#.
Nella pagina default.aspx c'e' solo il Bottone chiamato Button1

Public Class _Default
Inherits System.Web.UI.Page

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

Dim numrows As Integer = 2
Dim numcells As Integer = 3
Dim j As Integer
For j = 0 To numrows - 1
Dim r As New TableRow()
Dim i As Integer
For i = 0 To numcells - 2
Dim c As New TableCell()

c.Controls.Add(New CheckBox())
r.Cells.Add(c)
Next i

Table1.Rows.Add(r)
Next j

End Sub


Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim numrows As Integer = 2
Dim numcells As Integer = 3
Dim j As Integer
For j = 0 To numrows - 1

Dim i As Integer
For i = 0 To numcells - 2 ' scorro le celle
Dim tl As TableCell = Table1.Rows(j).Cells(i)
Dim fg As CheckBox
fg = tl.Controls.Item(0)
If fg.Checked = True Then
MsgBox("Hai selezionato la riga" & j & " la colonna " & i & "<br>", MsgBoxStyle.Critical)
End If
Next i


Next j



End Sub
End Class

Ciao

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.