Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di Kahm
    Registrato dal
    Dec 2004
    residenza
    Rome
    Messaggi
    3,550

    in una tabella, capire in quale riga mi trovo

    salve a tutti
    avendo una tabella dovrei capire in quale riga mi trovo

    il motivo è semplice, in modo da modfiicare la textbox che si trova in quella riga, e per farlo, visto che uso asp.net per popolare una datagrid ogni casella di testo nelle righe, prende questo formato:
    codice:
    <input name="DG_Filtro:_ctl2:TXT_ValoreCOndizione" type="text" id="DG_Filtro__ctl2_TXT_ValoreCOndizione" class="Text" size="20" />
    capirete quindi che in ogni riga cambia nome,per il fatto che si porta dietro il numero di riga:"DG_Filtro:_ctl2:TXT_ValoreCOndizione" il 2 è la riga in cui si trova!!

    questo è un pezzo di codice che mi hanno postato nella sezione asp.net per modificare una tabella per avanzare e sottrarre numeri nelle textbox, come posso modificarlo per capire anhce in che riga mi trovo?
    in uesto modo posso implementarlo in asp.net

    grazie


    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Pagina senza titolo</title>
        <link href="../stili/Styles.css" rel="stylesheet" type="text/css" />
    <script language="javascript" type="text/javascript">
    // <!CDATA[
    function button_onclick(v)
    {
        //trovo la riga del pulsante premuto
        var riga = getParentElement(v, "tr");
        if(v == undefined) return;
        
        //trovo la cella che contiene il textbox
        var celle = riga.getElementsByTagName("td");
        if(!celle || celle.length < 3) return;
        var cella = celle[1];
        
        //trovo il textbox
        var textbox = cella.getElementsByTagName("input")[0];
        
        //suppongo che si voglia incrementare o decrementare il suo valore di una unità
        var valore = textbox.value;
        if(valore == "") valore = 0; else valore = parseInt(valore);
        
        //incremento o decremento in funzione del value del pulsante
        //che fa la richiesta
        if(v.value == "+")
            textbox.value = ++valore;
        else
            textbox.value = --valore;
        
        
        
    }
    
    /*--------------------------------------------------------
    dato un oggetto v, restituisce il primo contenitore
    di tipo tag, o se stesso se è del tipo cercato
    Se indico pure id, mi trova il primo contenitore o se stesso
    di tipo tag e di dato id
    --------------------------------------------------------*/
    function getParentElement(v, tag, id)
    {
    	if(v == undefined) return undefined;
    	
    	if(v.tagName)
    	{
    		if(id == undefined)
    		{
    			if( v.tagName.toUpperCase( ) == tag.toUpperCase( ) ) return v;
    		}
    		else
    		{
    			if( v.id == id ) return v;
    		}
    	}
    	
    	
    	var w = v.parentNode;
    	if(w == undefined) return undefined;
    	if(w.tagName)
    	{
    		if(id == undefined)
    		{
    			if( v.parentNode.tagName.toUpperCase( ) == tag.toUpperCase( ) )
    				return v.parentNode;
    			else
    				return getParentElement(v.parentNode, tag);
    		}
    		else
    		{
    			if( v.id == id )
    				return v.parentNode;
    			else
    				return getParentElement(v.parentNode, tag, id);
    		}
    	}
    	else return undefined;
    	
    }
    // ]]>
    </script>
    </head>
    <body >
        <table id="tabella1" border="1">
            <tr>
                <th>prova</th>
                <th>prova</th>
                <th>prova</th>
                <th>prova</th>
            </tr>
            <tr>
                <td>prova</td>
                <td><input type="text" /></td>
                <td><input type="button" value="+" onclick="button_onclick(this);" /></td>
                <td><input type="button" value="-" onclick="button_onclick(this);" /></td>
            </tr>
            <tr>
                <td>prova</td>
                <td><input type="text" /></td>
                <td><input type="button" value="+" onclick="button_onclick(this);" /></td>
                <td><input type="button" value="-" onclick="button_onclick(this);" /></td>
            </tr>
            <tr>
                <td>prova</td>
                <td><input type="text" /></td>
                <td><input type="button" value="+" onclick="button_onclick(this);" /></td>
                <td><input type="button" value="-" onclick="button_onclick(this);" /></td>
            </tr>
            <tr>
                <td>prova</td>
                <td><input type="text" /></td>
                <td><input type="button" value="+" onclick="button_onclick(this);" /></td>
                <td><input type="button" value="-" onclick="button_onclick(this);" /></td>
            </tr>
            
        </table>
    </body>
    </html>
    NN vi diro mai chi sono in realta,
    tutti i miei 3D sono orfani, non insistete per farmi rispondere ai 3D aperti da me

  2. #2
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    per come è strutturato quel codice, la riga la ottieni premendo un pulsante, che lancia button_onclick

    dentro la funzione hai

    //trovo la riga del pulsante premuto
    var riga = getParentElement(v, "tr");

    la riga come vedi è nella variabile riga


    questo:
    avendo una tabella dovrei capire in quale riga mi trovo
    non l'ho capito :master:


    ps.ps.ps
    function getParentElement(v, tag, id) questo id, non capisco e ricordo più a che mi serviva
    Pietro

  3. #3
    Utente di HTML.it L'avatar di Kahm
    Registrato dal
    Dec 2004
    residenza
    Rome
    Messaggi
    3,550
    no, riga è un oggetto di tipo : getParentElement(v, "tr");

    infatti se faccio: alert(riga);mi risponde "undefined" anche con .tostring...lo stesso!

    cmq ho risolto ricostruendo tutto in asp.net
    ovviamente rimane il dubbio qui, che se lo scopro ci posso dormire la notte finalmente visto che è un po che ci provavo in javascript
    NN vi diro mai chi sono in realta,
    tutti i miei 3D sono orfani, non insistete per farmi rispondere ai 3D aperti da me

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da Kahm
    no, riga è un oggetto di tipo : getParentElement(v, "tr");

    infatti se faccio: alert(riga);mi risponde "undefined" anche con .tostring...lo stesso!

    cmq ho risolto ricostruendo tutto in asp.net
    ovviamente rimane il dubbio qui, che se lo scopro ci posso dormire la notte finalmente visto che è un po che ci provavo in javascript
    Mi fa piacere che abbia risolto lato server, ma dato che qui siamo lato client, si può vedere da un altro punto di vista. Prima di tutto qui non esistono i DataGrid e cose simili, ma <table, <tr, <td, <input, etc.

    Basta prendere il tuo messaggio, usare il tasto quote, selezionare tutto, copiare, incollare in un texteditor, togliere tutto quello esterno al codice, incollarlo in visual studio e... provare.

    A me funziona con IE7, Firefox2 e Opera9. Tutto quel codice si basa nella ricerca della riga che contiene i pulsanti su cui si fa click. Dalla riga si passa alle celle e dalle celle ai textbox.
    Naturalmente, se ci fossero degli errori sarei ben lieto se fossero segnalati dagli amici del forum.

    Comunque, si può anche fare diversamente. In pratica basta intercettare l'onclick sulla tabella, per fare le stesse cose. Più tardi provo a riscrivere il codice, dato che interessa pure a me.
    Pietro

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 © 2024 vBulletin Solutions, Inc. All rights reserved.