Telerik RadComboBox в проверке на стороне клиента RadGrid

Я использую Telerik ASP.net control suite (3 квартал 2008 года, я думаю, пока не могу обновить). У меня есть Radcombobox в элементе управления Radgrid (в шаблоне редактирования GridTemplateColumn). Если все в порядке, но у меня есть проверка на стороне клиента для других элементов управления в сетке (которые работают без ошибок). По какой-то причине после проверки на стороне клиента поле со списком перестает работать. Нет видимых ошибок JS, вещь просто умирает.

Кто-нибудь видел это и исправил? Google подвел меня.

Спасибо за вашу помощь.

2 ответа

Решение

Хорошо, я решил это. Очень грязная работа вокруг.

Во-первых, у меня есть панель за пределами панели мультивью, которая содержит мою сетку с другим подобным Radcombobox, который также умер при проверке. Я начал думать, что если я сделаю какую-то публикацию назад, это по какой-то причине исправит? Поэтому в моей сетке я добавил специальный валидатор, который проверяет RadComboBox в моей сетке. Он вызывает метод проверки JavaScript, как это так...

function valCOMBO(o, a) {
        a.IsValid = true;
        setTimeout(Res, 500);
      }
      function Res() { __doPostBack("<%=OPCOCombo.UniqueID %>");}

Обратите внимание, так как это поле не обязательно должно быть заполнено пользователем, я всегда возвращаю действительное значение true. Здесь происходит квази-магия. Я делаю пост обратно на ДРУГОЙ RadComboBox в верхней панели за пределами сетки в javascript. Вершина сетки RadComboBox имеет значение autopostback, установленное в true, не знаю, нужно ли это, если вы попробуете этот пример.

Это сработало. Внезапно оба RadComboBox-ов, и тот, и другой в сетке, снова начали работать. Но я заметил, что значение иногда теряется в RadComboBox сетки, поэтому для хихиканья я добавил небольшую паузу перед тем, как сделать пост обратно в 500 мс. Это добилось цели. Это на самом деле будет работать с очень маленькой паузой, но я увеличил ее до 500 мс для запаса безопасности, если у конечного пользователя медленное соединение, и это может иметь значение.

Слизистый, слизистый, слизистый. Хотелось бы, чтобы я просто использовал jQuery и использовал альтернативу этим чертовым telecom radcombobox, но такова жизнь (я слышал, что ограниченная версия jQuery похоронена в Telerik, поэкспериментирую с ней в последующих выпусках). Отвратительно, я уверен, что последний выпуск Telerik исправляет эту проблему (это лучше), так что все эти осмотры станут ненужными, когда мы обновимся (пока не могу, некоторые конфликтуют с некоторыми из настроенных элементов управления, которые мы создаем наследуя от Telerik. Январь первый квартал 2009 года + сломать эти элементы управления:()

Надеюсь, это может кому-то помочь.

Другой вариант. Я столкнулся со сценарием, в котором мне пришлось использовать множество RadCombobox, так что вместо того, чтобы беспокоиться о проверке их содержимого, я просто добавил текстовые поля с кнопкой рядом с каждой, которая открывала бы radwindow с RadComboBox, чтобы значения можно было выбирать динамически. При выборе javascript передал выбранное значение обратно целевому элементу на странице открывания окна. Я столкнулся с несколькими головными болями, с которыми мне пришлось поработать, имея набор параметров контекста, заданных в javascript, перед вызовом веб-службы для каждого ключа (подсказка: с помощью IE установите высоту Radcombobox по крайней мере для версий Telerik 2008 года... если ты не начнешь замерзать).

Опять же, надеюсь, что эта идея полезна.

Другие вопросы по тегам