Динамические элементы управления в панели обновления не публикуются в Opera Mobile - PullRequest
0 голосов
/ 04 июня 2011

У меня есть страница, к которой я добавляю динамическую UpdatePanel с большим количеством динамических элементов управления в ContentTemplateContainer .ViewState отключен на ContentTemplateContainer , потому что все состояние может быть воссоздано при обратной передаче с одного идентификатора в HiddenField , например, так:

        if (request.HttpMethod == "POST")
        {
            string ctrlName = request.Params.Get("__EVENTTARGET");
            int yearID = int.Parse(request.Form["hfPrevYear"]);
            if (!string.IsNullOrEmpty(ctrlName) && ctrlName == "btnYearUp")
            {
                yearID = getNextDataYear(di.getTestData(), yearID);
            }
            else if (!string.IsNullOrEmpty(ctrlName) && ctrlName == "btnYearDown")
            {
                yearID = getPrevDataYear(di.getTestData(), yearID);
            }
        }

Проблема в том, чтоOpera Mobile не публикует скрытое поле, в результате чего моя страница выдает исключение при попытке проанализировать это значение.Он только отправляет элементы управления за пределы панели обновления, такие как скрытые поля, которые ASP.NET добавляет для viewstate и цели события.Когда я шагал по коду обратной передачи в Dragonfly, я заметил, что коллекция document.forms [0] .elements [] не включает мои элементы управления, и это то, через что обновляется код панели обновления для создания запроса на публикацию.

Другие браузеры размещают поле просто отлично, включая Opera Mini и Desktop Opera.

Есть идеи, что здесь происходит?

Спасибо за помощь, - Ник

1 Ответ

0 голосов
/ 06 июня 2011

Поскольку вы еще не опубликовали пример, я могу дать вам только несколько общих советов.Мое предположение заключается в том, что в базовой версии Opera mobile может быть ошибка, которая уже исправлена ​​в Opera desktop / Mini.

Убедитесь, что ваша разметка внутри формы правильная - если теги где-то в неправильном порядке, дляНапример, что-то вроде

<p><b></p></b>

может запутать синтаксический анализатор, и примером такой путаницы может быть то, что форма закрывается слишком рано, и элементы управления оказываются «вне ее».Служба validator.w3.org может помочь вам найти такие проблемы.

Кроме того, убедитесь, что у тегов, которые должны быть закрыты, есть закрывающий тег по той же причине.

Как добавляются элементык форме - они в разметке с самого начала или добавлены с помощью JavaScript?Если последнее, попробуйте добавить их в саму форму явным образом (document.forms [x] .appendChild () .. вместо добавления их к элементу, который, по вашему мнению, находится внутри формы).

...