Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    30

    problema checkbox in datagrid

    Ciao! io ho inserito una colonna con delle checkbox nel mio datagrid. Adesso vorrei sapere come faccio, quando genero l'evento oncheckedchange cliccandoci sopra, a recuperare l'indice della riga su cui ho cliccato
    ciao e grazie

  2. #2
    Utente di HTML.it L'avatar di nicki
    Registrato dal
    Dec 2000
    Messaggi
    139
    Così su due piedi ti direi di scorrere il DataGrid
    controllando riga per riga se la CheckBox ha il
    checked a true.
    Forse però puoi fare così (non ho il tempo di provarlo):


    codice:
    //File .aspx
    <asp:CheckBox id="CheckBoxElimina"
     OnCheckedChange="VisualizzaCeccato" 
    CommandArgument='<%# DataBinder.Eval(Container, "DataItem.IDTupla") 
    %>' runat="server"></asp:CheckBox>
    
    
    //File .aspx.cs
    public void VisualizzaCeccato(object sender, System.Web.UI.WebControls.CommandEventArgs e)
    {
      Response.Write("Hai selezionato: "+
       e.CommandArgument.ToString());
    }
    Ciao, nic.

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    30
    Ciao! se faccio come mi hai scritto mi dice che la proprietà CommandArgument nella checkbox non è presente ma mi fà eseguire comunque...ma quando apro la pagina mi dice:
    Method 'Public Sub chkSpeciale_Change(sender As Object, e As System.Web.UI.WebControls.CommandEventArgs)' does not have the same signature as delegate 'Delegate Sub EventHandler(sender As Object, e As System.EventArgs)'.

    non gli piace il System.Web.UI.WebControls.CommandEventArgs

    ...devo riuscire a recuperare l'id della riga in cui è stato ceccato la checkbox...hai qualche altra idea? grazie...ciao

  4. #4
    Utente di HTML.it L'avatar di nicki
    Registrato dal
    Dec 2000
    Messaggi
    139
    Hai anche ragione, la ChackBox non ha qulla proprietà.
    Mmmmm una soluzione spartana é la seguente:

    File .aspx
    codice:
    <asp:CheckBox id="CheckBox2" runat="server" OnCheckedChanged="stampapino" AutoPostBack="True"></asp:CheckBox>
    File .aspx.cs
    codice:
    public void stampapino(object sender, System.EventArgs e)
    {
     int checkato=-1;
     for (int i=0;i<DataGrid1.Items.Count;i++)
     {
      if (((CheckBox)DataGrid1.Items[i].FindControl("CheckBox2")).Checked==true)
    	checkato=i;
     }
     Response.Write(checkato);
    }
    Testato e funziona
    Ciao, nic.

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    30
    ma se c'è più di un elemento cekkato funziona lo stesso?

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    30
    provato, ma se ce ne sono più selezionati restituisce l'id dell'ultimo

  7. #7
    Utente di HTML.it L'avatar di nicki
    Registrato dal
    Dec 2000
    Messaggi
    139
    Naturalmente.
    Tu di cosa hai bisogno?

    Puoi farti dare la lista di tutte quelle selezionate nel seguente modo:

    codice:
    public void stampapino(object sender, System.EventArgs e)
    {
     int checkato=-1;
     for (int i=0;i<DataGrid1.Items.Count;i++)
     {
      if (((CheckBox)DataGrid1.Items[i].FindControl("CheckBox2")).Checked==true)
    	Response.Write(i);
     }
    }
    Ciao, nic.

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    30
    a me serve l'id dell'ultima cekkata...cioè quando clicco su casella nella riga 2 mi deve restituire 2 anche se ce ne sono altre già cekkate

  9. #9
    Utente di HTML.it L'avatar di nicki
    Registrato dal
    Dec 2000
    Messaggi
    139
    per questo che ti dicevo che la soprastante é una soluzione spartana, perché adesso per avere l'ultimo checked non é mica tanto facile....

    Dovresti tenere traccia delle checkbox checked in un array che di volta in volta ti aggiorni aggiungendo o togliendo indici (che corrispondono alle checkbox checked) e confrontando quando ne checchi una se é già presente nell'array allora non ultima, altrimenti é l'ultima.

    Sarebbe meglio riuscire a farsi dare dalla checkbox del datagrid l'informazione dell'indice della riga a cui appartiene, ma non so se questo é possibile.
    Ciao, nic.

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    30
    infatti...è quello che stò cercando di fare...devo riuscire a far passare l'id della riga attraverso qualche proprietà della check...per poterlo così recuperare...se ti viene in mente qualche idea io sono qui...per adesso ti ringrazio

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.