javascript
  • c#
  • html
  • .net
  • ajax
  • 2017-05-06 1 views 1 likes 
    1

    mein aspx.cs Code erhalten:Wie HTML-Tabelle Datenwert dynamisch in Javascript

    string studentid = dr["StudentId"].ToString(); 
         string studentname = dr["studentName"].ToString(); 
         Response.Write("<tr id = 'studentid' onclick = 'passValuesToInput(this)' >"); 
         Response.Write("<td id = 'sid' >"); 
         Response.Write(studentid); 
         Response.Write("</td>"); 
         Response.Write("<td>"); 
         Response.Write(studentname); 
         Response.Write("</td>"); 
         Response.Write("<td>"); 
         Response.Write("<img src = 'Edit-icon.png' height='20' width='20' >"); 
         Response.Write("</td>"); 
         Response.Write("<td>"); 
         Response.Write("<img src = 'ic_delete_48px-128.png' height='20' width='20'>"); 
         Response.Write("</td>"); 
         Response.Write("</tr>"); 
        } 
    

    JavaScript Funktionscode:

    function passValuesToInput(x){ 
    alert(x.innerHTML); 
    document.getElementById("tbId").value = document.getElementById("sid").innerHTML; 
    document.getElementById("tbId").readOnly = true; 
    } 
    

    Unabhängig davon, welche der Reihe sein Ich habe auf, Es ist vorbei nur 1. Reihe 1. Element zu Textfeld, dessen ID = tbId. Hilf mir mit Vorschlägen. Ich möchte die erste Zelle der Zeile an Textfeld übergeben, wenn Sie auf Bilder bearbeiten oder löschen klicken.

    +0

    * id * sollte eindeutig sein. Verwenden Sie also class = "sid" und Sie müssen die aktuell angeklickte Zeilenzelle abrufen, anstatt das Wertformular * id * zu erhalten. x.zellen [0] .innerHTML; – JYoThI

    +0

    Mohith sind Sie bequem, jquery anstelle von Javascript zu verwenden? –

    +0

    Nein, nur JavaScript/Ajax ist erlaubt. @AbhishekMaurya –

    Antwort

    0

    document.getElementById („sid“) immer Sie die Innerhtml von ersten Zelle zurückkehren, weil id sollte für jedes Element eindeutig sein, und deshalb getElementByld wird das erste Element, dass die ID mit Pick. Wenn Ihr sid ist immer die erste Zelle sein werde, dann können Sie unter Code versuchen:

    function passValuesToInput(x){ 
    alert(x.innerHTML); 
    document.getElementById("tbId").value = x.cells[0].innerHTML; 
    document.getElementById("tbId").readOnly = true; 
    } 
    
    +0

    Arbeiten. :) Ich weiß, warum es immer den Wert der ersten Zeile zurückgibt, aber es konnte nicht aufgelöst werden. Danke –

    +0

    Mein Vergnügen .. :) –

    0

    Sie sollten versuchen, es immer die ersten Pick sonst eindeutige ID für die Zeile zu übergeben. Sie können so etwas wie dies versuchen:

    string studentid = dr["StudentId"].ToString(); 
        string studentname = dr["studentName"].ToString(); 
        Response.Write(String.Format("<tr id = '{0}' onclick = 'passValuesToInput({0})' >",studentid)); 
        Response.Write("<td id = 'sid' >"); 
        Response.Write(studentid); 
        Response.Write("</td>"); 
        Response.Write("<td>"); 
        Response.Write(studentname); 
        Response.Write("</td>"); 
        Response.Write("<td>"); 
        Response.Write("<img src = 'Edit-icon.png' height='20' width='20' >"); 
        Response.Write("</td>"); 
        Response.Write("<td>"); 
        Response.Write("<img src = 'ic_delete_48px-128.png' height='20' width='20'>"); 
        Response.Write("</td>"); 
        Response.Write("</tr>"); 
    } 
    

    Dann können Sie Javascript geschrieben werden als:

    function passValuesToInput(x){ 
    var elm = {}; 
    var elms = document.getElementById(x).getElementsByTagName("*"); 
    for (var i = 0; i < elms.length; i++) { 
        if (elms[i].id === 'sid') { 
         elm = elms[i]; 
         break; 
        } 
    } 
    document.getElementById("tbId").value = elm.value; //or use elm.innerHtml 
    document.getElementById("tbId").readOnly = true;  
    } 
    
    Verwandte Themen