我在这个样本上工作了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);
}
});
}
通过调用javascript函数查看我附加网格视图的最后一列。
js功能:
function BindGrid(user) {
$(document).ready(function () {
$("#tblSub"+user).jqGrid({
loadError: function (xhr, status, error) {
alert('load:' + error);
},
url: 'Fetch.aspx?filter=' + user + '',
data: "{}",
datatype: 'json',
colNames: ['Name', 'Mobile'],
colModel: [
{
name: 'User',
index: 'User',
width: 100,
align: "left",
editable: true,
size: 80
},
{
.
.
.
所以如果我通过 BindGrid(&#34; AjjiAjji&#34;)它工作正常,但我想自动加载网格,如 BindGrid(&#39; + msg [i] .Name +&#39;),显示错误&#34; ReferenceError:未定义AjjiAjji&#34;
答案 0 :(得分:1)
我认为您忘记添加双引号,结果为BindGrid (AjjAjj)
。试试这个:
BindGrid("'+msg[i].Name+'")
这应该可以正常工作
答案 1 :(得分:0)
我认为问题在于你将jqGrid附加到“$(”#tblSub“+ user)”的时间在DOM中不存在。 你应该只在$('#divData')之后调用BindGrid函数.html(table);这是将表添加到DOM中。
这样jqGrid可以正常工作。