1
function updateGrid(data) { // appending the retrieved data(user details) to the grid
        var i = 0;
        var content;
        $("#GridView1").html('');
        $("#GridView1").append("<tr><th>" + "Name" + "</th><th>" + "Gender" + "</th><th>" + "Date of Birth" + "</th><th>" + "Role" + "</th><th>" + "Password" + "</th><th>" + "Email" + "</th><th>" + "Edit" + "</th></tr>");
        while (data[i] != null)
        {
            $("#GridView1").append("<tr><td>" + data[i].name + "</td><td>" + data[i].gender + "</td><td>" + data[i].dob + "</td><td>" + data[i].role + "</td><td>" + data[i].password + "</td><td>" + data[i].email + "</td><td>" + "<button id=btnEdit  onclick='test()'>Edit</button>" + "</td></tr>");// HERE I M DYNAMICALLY CREATING A BUTTON IN THE LAST. WHEN I CLICK IT IT CALLS TEST().HOW CAN I SEND THE DATA IN THIS ROW TO THAT TEST() FUNCTION IN ORDER TO ACCES THEM
            i++;
        }
    }
    function test() {

        alert('edit button is clicked');
        // I NEED TO ACCESS THE ROW'S DATA WHERE THIS EDIT BUTTON IS CLICKED.
    }

これは私のコードです。jquery ajaxを使用して、データベースからデータを取得し、動的にグリッドに追加し、行の最後に編集ボタンを作成しています。ボタンクリックでメソッド test() を呼び出しています。現在の行の値をその test() 関数に送信する方法、または test() 関数でそれらにアクセスするにはどうすればよいですか...

4

2 に答える 2

0

そんな感じ:

$("#GridView1").append("<tr id="+data[i]+"><td>" + data[i].name + "</td><td>" + data[i].gender + "</td><td>" + data[i].dob + "</td><td>" + data[i].role + "</td><td>" + data[i].password + "</td><td>" + data[i].email + "</td><td>" + "<button id=btnEdit  onclick='test("+data[i].Id+")'>Edit</button>" + "</td></tr>");

function test(id) {

    Here use jquery selector to access the <tr> by id, then you can operate with the data in it.
}
于 2013-02-14T13:00:42.910 に答える
0

[編集] ボタンにクラスを指定し、jquery を使用してそのクラスとその親にアクセスしてデータを取得します

"<button id=btnEdit class='edit'>Edit</button>"

$('.edit').click(function(e){ // pass in e to find the button clicked

    var row = $(e.target).parents('tr'); // or var row = $(e.target).parent().parent();



});

これにより、同じ ID の使用が最小限に抑えられます。

于 2013-02-14T13:00:50.800 に答える