Вызов ASP.NET MVC $ .post, возвращающий строку… нужна помощь с форматом для jqGrid

Я пытаюсь динамически заполнить раскрывающийся список для jqGrid, когда пользователь редактирует данные. Однако у меня это довольно много работает, в раскрывающемся списке есть одно значение "undefined". Я подозреваю, что это связано с тем, как я отправляю данные в сетку. Я использую ASP.NET MVC 2 и получаю данные для раскрывающегося списка с помощью jQuery следующим образом:

var destinations = $.ajax({ type:"POST",
                        url: '<%= Url.Action("GetDestinations", "Logger") %>',
                        dataType: "json",
                        async: false,
                        success: function(data) {

                         } }).responseText;

Теперь jqGrid хочет, чтобы значения для раскрывающегося списка были отформатированы следующим образом:

value: "FE:FedEx; IN:InTime; TN:TNT"

Я использую StringBuilder чтобы перебрать мою коллекцию и предоставить правильную строку, которую хочет jqGrid:

foreach (var q in query)
{
     sb.Append("ID:");
     sb.Append(q.Destination);
     sb.Append("; ");
}

Я возвращаю это из своего контроллера следующим образом:

return this.Json(sb.ToString());

Это все здорово, и я получаю все элементы, которые мне нужны для раскрывающегося списка, но есть дополнительный элемент (последний) под названием «undefined».

Я думаю, что проблема в том, когда я отлаживаю в FireBug, результат для jqGrid выглядит так:

value: ""ID: One;ID: Two;ID: Three;ID: Four;ID: Five;""

Посмотрите, как есть два набора кавычек. Вероятно, это потому, что когда я говорю:

sb.ToString()

Он, вероятно, генерирует кавычки, а затем jqGrid добавляет второй набор. Но я не на все 100%.

Как лучше всего с этим справиться? Любой совет будет очень признателен.

РЕШЕНИЕ:

Я решил эту проблему, используя Но я не на все 100%.

Как лучше всего с этим справиться? Любой совет будет очень признателен.

РЕШЕНИЕ:

Я решил эту проблему, используя Но я не на все 100%.

Как лучше всего с этим справиться? Любой совет будет очень признателен.

РЕШЕНИЕ:

Я решил эту проблему, используя мы можем быть уверены, что такого значения слева от среднего элемента нет, только если array [mid] <= startindex, где mid - индекс среднего элемента, а startindex - начало массива.

Соответствующее правило для правая половина массива - это array [mid]> = startindex + numel, где переменные, как указано выше, а numel - это количество элементов справа от середины.

Это не похоже на O (logn), поскольку в в худшем случае мне придется перебирать все, не так ли? Может ли кто-нибудь подсказать мне правильное направление здесь или сказать, что это работает?

Есть идеи, как я могу официально доказать это? Я не прошу однозначного ответа, больше немного помогите мне понять.

В C:

int _solve_prob_int(int depth, int start, int count, int input[])
    {
    if(count == 0)
        return 0;
    int mid = start + ((count - 1) / 2);
    if(input[mid] == mid)
        return 1;

    if(input[mid] <= start && input[mid] >= start + count)
        return 0;

    int n_sub_elleft = (int)(count - 1) / 2;
    int n_sub_elright = (int)(count) / 2;

    if(input[mid] <= start)
        return _solve_prob_int(depth + 1, mid + 1, n_sub_elright, input);

    if(input[mid] >= start + count)
        return _solve_prob_int(depth + 1, mid - n_sub_elleft, n_sub_elleft, input);

    return _solve_prob_int(depth + 1, mid - n_sub_elleft, n_sub_elleft, input) ||
            _solve_prob_int(depth + 1, mid + 1, n_sub_elright, input);
    }

Контрольный пример:

Sorted args: 1 2 3 4 5 6 7 8 9 10 11 12 : 
Start: 0, count: 12, mid: 5 value: 6
    Start: 0, count: 5, mid: 2 value: 3
        Start: 0, count: 2, mid: 0 value: 1
            Start: 1, count: 1, mid: 1 value: 2
        Start: 3, count: 2, mid: 3 value: 4
            Start: 4, count: 1, mid: 4 value: 5
    Start: 6, count: 6, mid: 8 value: 9
        Start: 6, count: 2, mid: 6 value: 7
            Start: 7, count: 1, mid: 7 value: 8
        Start: 9, count: 3, mid: 10 value: 11
            Start: 9, count: 1, mid: 9 value: 10
            Start: 11, count: 1, mid: 11 value: 12

Выше моя программа запускается с некоторым выводом в зависимости от того, как она выполняла поиск. В списке от 1 до 12 он вращается вокруг индекса 5, определяет, что может быть значение между 0-4 при индексах 0-4. Он также определяет, что может быть значение между 6-11 при индексах 6-11. Итак, я приступаю к поиску их обоих. Это неправильно?

9
задан Max 8 November 2010 в 16:00
поделиться