2017-08-14 57 views
0

我正在研究項目並使用gridview查看一些可編輯的數據。我對這些數據有一些限制,我想在數據發送到數據庫之前執行前端檢查。我的代碼如下:如何在javascriptview中的gridview中獲取新的輸入值

<asp:Button ID="Update" runat="server" CausesValidation="True" 
      CommandName="Update" Text="Update" onclientClick="check(this)"/> 

而且我的JavaScript如下:

function check(up) { 

    var ip, desc, rt; 

    var table = document.getElementById('<%=GridView1.ClientID %>'); 

    var row = up.parentNode.parentNode; 

    ip = row.cells[1].children[0].attributes[2].value; 
    desc = row.cells[2].children[0].attributes[2].value; 
    rt = row.cells[3].children[0].attributes[2].value; 
    time = parseFloat(rt); 
    alert(rt); 

    if (ip === null || ip.match(/^ *$/) !== null) { 
     alert('please enter IP Address'); 
     return false; 
    } 
    else if (desc === null || desc.match(/^ *$/) !== null) { 
     alert('please enter description'); 
     return false; 
    } 
    else if (rt === null || rt.match(/^ *$/) !== null) { 
     alert('please enter refresh time'); 
     return false; 
    } 
    else if (isNaN(time)){ 
     alert('refresh time must be a number'); 
     return false; 
    } 
    else if (Number(time) < 1) { 
     alert('the minimum refresh time is 1'); 
     return false; 
    } 
    else 
     return true; 
} 

的問題是,我總是得到舊值而不是新的。我如何獲得JavaScript中的新值? 我使用的是sqlDataSource我的更新查詢:

UPDATE Clients 
SET ipAddress = @ipAddress, description = @description, refreshTime = @refreshTime 
WHERE machineName = @MachineName 

回答

0

你是不是從你的行獲取行索引,試試這個:

var table = document.getElementById('<%=GridView1.ClientID %>'); 

var row = up.parentNode.parentNode; 

var rindex = row.rowIndex; // get gridview row index 

ip = table.rows[rindex].cells[1].children[0].value; 
desc = table.rows[rindex].cells[2].children[0].value; 
rt = table.rows[rindex].cells[3].children[0].value; 
相關問題