41 messaggi dal 16 marzo 2007
Ragazzi ... ho una gridview ... come faccio a sapere in che riga sono quando cecco un checkbox su una riga della mia grid view? ...

Ho una colonna nascosta nella gridview che è la mia chiave.
Ho provato con una cosa del tipo

findcontrol('nomecolonna') ma mi restituisce sempre zero e non il valore desiderato... idee?

Giulia
la CheckBox ha la proprietà AutoPostBack = true?

ciao marco

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

http://nostromo.spaces.live.com/default.aspx
per prima cosa modfica la tua CheckBox cosi:


 <asp:TemplateField>
              <ItemTemplate>
                  <asp:CheckBox ID="CheckBox1" runat="server" AutoPostBack="true" <b>OnCheckedChanged="test_CheckedChanged"</b> />
              </ItemTemplate>
              </asp:TemplateField>


poi devi creare l'event handler

    protected void test_CheckedChanged(object sender, EventArgs e)
    {
        GridViewRow row = ((CheckBox)sender).NamingContainer as GridViewRow;

        if(row != null)
        {
            Response.Write(GridView1.DataKeys[row.RowIndex].Value);
        }

    }


al posto della colonna nascosta usa piuttosto la collezione DataKeys.

ciao marco

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

http://nostromo.spaces.live.com/default.aspx
41 messaggi dal 16 marzo 2007
Io avevo previsto un bottone. Al click per ogni record selezionato dalla checkbox volevo fare un'elaborazione ... ma l'id mi restituisce sempre un valore null ...

Protected Sub btnAssegnaDate_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnAssegnaDate.Click
' gvBrogliaccio.Enabled = False
PanelInserimentoPratica.Visible = False

Dim aGridViewRow As GridViewRow

For Each aGridViewRow In gvBrogliaccio.Rows
Dim check1 As CheckBox = CType(aGridViewRow.FindControl("CB_AssegnaTeamLeader"), CheckBox)
If check1.Checked = True Then
' *** Chiamata al DB per l'aggiornamento dei record selezionati
' *** date il, fl, ee = sysdate
Dim ds As New BL_Brogliaccio.DS_Brogliaccio
Dim servizio As New BL_Brogliaccio.BL_Brogliaccio
Dim IdBrogliaccio = gvBrogliaccio.FindControl("lblID_BROGLIACCIO")
ds = servizio.AssegnaDate(IdBrogliaccio)

' *** fare la query per date = sysdate (per far vedere quelle modificate)
gvBrogliaccio.DataBind()
End If
Next

End Sub

Dove sbaglio? ...

Giulia
non capisco, non volevi recuperare la chiave della riga quando una check veniva spuntata?

comunque questo controllo: lblID_BROGLIACCIO si trova mica nella colonna nascosta?

ciao marco

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

http://nostromo.spaces.live.com/default.aspx
41 messaggi dal 16 marzo 2007
Esattamente. E contiene la chiave del mio record!
Ho provato così ...

Dim IdBrogliaccio As Integer = gvBrogliaccio.DataKeys(0).Value

ma questo controllo nonostante sto in un loop restituisce sempre lo stesso valore... idee?

Giulia
al posto di 0 passi l'indice della riga?

nel tuo caso dovrebbe essere aGridViewRow.RowIndex

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.