Javascript 绑定到动态表中的问题

Javascript 绑定到动态表中的问题,javascript,jquery,jqgrid,Javascript,Jquery,Jqgrid,我在这个样品上工作了3天,在最后一步进行了反复试验!!请有人帮帮我 任何帮助都是值得感激的 我正在加载一个动态表,我想在列上附加一个网格。我创建了一个绑定jqgrid的函数。所以当我绑定一个表时,我用一个参数调用这个函数 这里的问题是,如果我直接给出参数,它正在工作,但是如果我想自动加载它,它就不工作了 下面我将用代码进行解释: function bindData() { $.ajax({ type: "POST", url: location.pathname + "

我在这个样品上工作了3天,在最后一步进行了反复试验!!请有人帮帮我

任何帮助都是值得感激的

我正在加载一个动态表,我想在列上附加一个网格。我创建了一个绑定jqgrid的函数。所以当我绑定一个表时,我用一个参数调用这个函数

这里的问题是,如果我直接给出参数,它正在工作,但是如果我想自动加载它,它就不工作了

下面我将用代码进行解释:

  function bindData() {

  $.ajax({
    type: "POST",
    url: location.pathname + "/getData",
    data: "{}",
    contentType: "application/json; charset=utf-8",
    datatype: "jsondata",
    async: "true",
    success: function (response) {
        var msg = eval('(' + response.d + ')');
        if ($('#tblResult').length != 0) // remove table if it exists
        { $("#tblResult").remove(); }
        var table = "<table class='tblResult' id=tblResult><thead> <tr><th>Name</th><th>SurName</th><th>Email</><th>Mobile</th><th>Address</th><th>Actions</th><th>image</th><th>Country</th><th>State</th><th>Gender</th><th>Add.Mobile</th></thead><tbody>";

        for (var i = 0; i <= (msg.length - 1); i++) {
            var row = "<tr>";
            row += '<td>' + msg[i].Name + '</td>';
            row += '<td>' + msg[i].SurName + '</td>';
            row += '<td>' + msg[i].Email + '</td>';
            row += '<td>' + msg[i].Mobile + '</td>';
            row += '<td>' + msg[i].Address + '</td>';
            row += '<td><img id="im" src="/User_Registration1/images/edit.png" title="Edit record." onclick="bindRecordToEdit(' + msg[i].EmployeeId + ')" />  <img src="/User_Registration1/images/delete.png" onclick="deleteRecord(' + msg[i].EmployeeId + ')" title="Delete record." /></td>';
            row += '<td><img class="img" src=' + msg[i].FileName + ' alt="--NO IMAGE--"/></td>';
            row += '<td>' + msg[i].Country + '</td>';
            row += '<td>' + msg[i].StateName + '</td>';
            row += '<td>' + msg[i].Gender + '</td>';
            row += '<td style="width:250px;height:120px;"><table id="tblSub' + msg[i].Name + '"></table><script> $(document).ready(function () { BindGrid("AjjiAjji");});</script></td>';
            row += '</tr>';
            table += row;
        }
        table += '</tbody></table>';
        $('#divData').html(table);
        $("#divData").slideDown("slow");

    },
    error: function (response) {
        alert(response.status + ' ' + response.statusText);
    }
});

因此,如果我通过BindGrid(“AjjiAjji”)它工作正常,但我想像BindGrid('+msg[i].Name+')那样自动加载网格,它显示的是错误“ReferenceError:AjjiAjji未定义”

我想你忘记了添加双引号,结果可能是
BindGrid(AjjAjj)
。试试这个:

BindGrid("'+msg[i].Name+'")

这应该很好

我认为问题在于,将jqGrid附加到“$(“#tblSub”+user)”的时间不在DOM中。 您应该只在$('#divData').html(table)之后调用BindGrid函数;将表添加到DOM中


使jqGrid能够正常工作

你缺少了
试试这个方法>
BindGrid(“'+msg[i].Name+”)
Wow!!!直到现在我一直认为这是DOM的问题,我认为DOM不是像..那样加载的,但从来没有想过这个引号!!!Thanx所以much@Wolff如果没有双引号,最终的html结果将是:
BindGrid(AjjAjj)
没有像AjjAjj这样的变量。但是最终的html应该是
BindGrid(“AjjAjj”)
AjjAjj应该设置为参数值。是的,我没有看到它是在字符串连接+1中,即使我是这样想的,但真正的问题是引号!!!请参见@hkzemiyes。只是对代码的一些建议。执行JS代码不需要在“td”中写“script”标记。您可以直接调用$('#divData').html(table);BindGrid(msg[i].Name);在BindGrid函数中,您不需要再次检查$(document).ready()
BindGrid("'+msg[i].Name+'")