2013-12-01 2 views
0

У меня есть функция для работы с моей автозаполнением, однако мне нужно иметь возможность изменять динамические столбцы, кто-нибудь знает этот синтаксис? Итак, в этом примере я хочу заменить i.id на i.return_id. Я пробовал i.return_id, i [return_id], i. [Return_id], i. ["+ Return_id +"], i. "+ Return_id +" .... истекает вариант.using переменная в возврате автозаполнения

function _autocomplete(element, type, pageid, tableid,return_name, return_id) {" + 
       "alert(element);" + 
       "if (type == 2) {" + 
       "$(element) .autocomplete({" + 
       " source: function(request, response) {" + 
       " var matcher = new RegExp($.ui.autocomplete.escapeRegex(request.term), \"i\"); " + 
       " $.ajax({" + 
       "  url: 'dataServices/objects.asmx/InvokeData'" + 
       "  ,data: JSON.stringify({ q: request.term ,pid:pageid,tid:tableid,filter:JSON.stringify([{field:{label:\"\",value:\"return_name\"},operate:{label:\"\",value:\"ct\"},value:{label:\"\",value:\"\"+request.term+\"\"}}]),order:\"\",cid:38, sid: 2,jqGridSubId:\"\",jqGridLevel:0 })" + 
       "  ,dataType: 'JSON'" + 
       "  ,type: 'POST'" + 
       "  ,contentType: 'application/json;charset=utf-8'" + 
       "  ,success: function(data)" + 
       "   {" + 
       "   _dataStore = null; _dataStore = data;" + 
       "   response($.map(data.d, function (i, item) { " + 
       "    return { " + 
       "     label: \"[\" + i.id + \"] \" + item[\" + return_name + \"], value: \"[\" + i.id + \"] \" + i.[\" + return_name + \"] " + 
       "      }" + 
       "              }" + 
       "     ))" + 
       "   }" + 
       "  });" + 
       "}})}" + 
+0

Итак, ваш json возвращает return_id вместо id? – Scottie

+0

return_id содержит значение id, поэтому это столбец, который мне нравится получать. Таким образом, javascript должен видеть i. "Return_id" как i.id в этом примере –

ответ

0

Если я правильно понял ваш код, вы пытаетесь вернуть только те записи, которые соответствуют возврату, который передан ему. Вы можете попробовать это ...

response($.map(data.d, function (i, item) { 
    if (i.id == return_id) { 
     return { 
      label: \"[\" + i.id + \"] \" + item[\" + return_name + \"], value: \"[\" + i.id + \"] 
        + i.[\" + return_name + \"] 
     } 
    } 
})); 
+0

Не будет работать, поскольку это будет значение compair с именем столбца, а рядом с return_id может быть любое имя столбца, это не значение, а имя столбца, и это будет значение –

+0

Я думаю, что теперь в направлении что-то вроде этого «var name = i.return_name;» поэтому сценарий будет думать, что он уже получил значение в ... –

+0

Кстати, эти вещи не работают «i. [\" + return_name + \ "]" –

Смежные вопросы