Питание ASP.NET RadioButton с именем (groupname)

Ничего не видно. Страница пуста и белая.

Также известна как Белая страница смерти или Белый экран смерти . Это происходит, когда отчет об ошибках отключен, и произошла фатальная ошибка (часто синтаксическая ошибка).

Если вы включили протоколирование ошибок, вы найдете конкретное сообщение об ошибке в своем журнале ошибок. Обычно это будет в файле php_errors.log, либо в центральном месте (например, /var/log/apache2 во многих средах Linux), либо в самом каталоге самого скрипта (иногда используется в среде совместного размещения).

Иногда может быть более простым временно отображать ошибки. На белой странице отобразится сообщение об ошибке. Будьте осторожны, потому что эти ошибки видны всем, кто посещает веб-сайт.

Это легко сделать, добавив в начале скрипта следующий код PHP:

ini_set('display_errors', 1); error_reporting(~0);

Код включит отображение ошибок и установит отчетность на самый высокий уровень.

Поскольку во время выполнения ini_set() он не влияет на синтаксические ошибки синтаксиса. Эти ошибки появятся в журнале. Если вы хотите также отобразить их на выходе (например, в браузере), вам необходимо установить директиву display_startup_errors на true. Сделайте это либо в php.ini, либо в .htaccess или любом другом методе, который влияет на конфигурацию перед временем выполнения .

Вы можете использовать те же методы для установки параметра log_errors и error_log , чтобы выбрать ваше собственное место в файле журнала.

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

Похожие вопросы:

Связанные ошибки:

36
задан Peter Mortensen 3 August 2011 в 21:00
поделиться

5 ответов

Google-fu: проблема с повторителем переключателя asp.net

Действительно печальное последствие идентификационного искажения. Мое взятие создало бы - или выбрало бы одного из доступных многих - пользовательский элемент управления, который добавляет поддержку того же имени на клиенте.

7
ответ дан Peter Mortensen 27 November 2019 в 06:10
поделиться

Подсказка ASP.NET: Используя Средства управления RadioButton в Повторителе

Это - код для функции JavaScript:

function SetUniqueRadioButton(nameregex, current)
{
   re = new RegExp(nameregex);
   for(i = 0; i < document.forms[0].elements.length; i++)
   {
      elm = document.forms[0].elements[i]
      if (elm.type == 'radio')
      {
         if (re.test(elm.name))
         {
            elm.checked = false;
         }
      }
   }
   current.checked = true;
}

код связан с Повторителем через событие ItemDataBound. Для него для работы правильно необходимо знать название управления Повторителем, а также GroupName, который Вы присваиваете RadioButtons. В этом случае я использую rptPortfolios в качестве названия Повторителя и Портфели как название группы:

protected void rptPortfolios_ItemDataBound(object sender,
                                           RepeaterItemEventArgs e)
{
   if (e.Item.ItemType != ListItemType.Item && e.Item.ItemType
      != ListItemType.AlternatingItem)
      return;

   RadioButton rdo = (RadioButton)e.Item.FindControl("rdoSelected");
   string script =
      "SetUniqueRadioButton('rptPortfolios.*Portfolios',this)";
   rdo.Attributes.Add("onclick", script);

}

КАСАТЕЛЬНО: http://www.codeguru.com/csharp/csharp/cs_controls/custom/article.php/c12371/

8
ответ дан Michael Haren 27 November 2019 в 06:10
поделиться

Владимир Смирнов уже создал отличный настраиваемый элемент управления, решающий эту проблему. Мы использовали GroupRadioButton в наших проектах, и он отлично работал с переключателями, созданными внутри репитера, и другими вне репитера, которые были частью одной группы.

6
ответ дан 27 November 2019 в 06:10
поделиться

Возможно, это не идеальное решение для всех, но я сделал следующее, используя jQuery.

etc ...

Затем включите следующий код на главную страницу. (или все ваши страницы)

$(function() {
//This is a workaround for Microsoft's GroupName bug.  
//Set the radio button's groupName attribute to make it work.
$('span[groupName] > input').click(function() {
    var element = this;
    var span = $(element).parent();
    if (element.checked) {
        var groupName = $(span).attr('groupName');
        var inputs = $('span[groupName=' + groupName + '] > input')
        inputs.each(function() {
            if (element != this)
                this.checked = false;
        });
    }
});

});

0
ответ дан 27 November 2019 в 06:10
поделиться

Это могло бы быть немного лучше ..

У меня есть пользовательский элемент управления, который по сути представляет собой набор радиокнопок внутри ретранслятора, каждый экземпляр пользовательского элемента управления имеет общедоступное свойство FilterTitle, которое уникально для каждого экземпляра.

добавьте эти два свойства в свой радиокнопку, заменив FilterTitle своим собственным именем общедоступного свойства

onclick='<%# "$(\"input[name$=btngroup_" + FilterTitle + "]\").removeAttr(\"checked\"); $(this).attr(\"checked\",\"checked\");" %>' GroupName='<%# "btngroup_" + FilterTitle  %>'

проще.

onclick="$('input[name$=btngroup1]').removeAttr('checked'); $(this).attr('checked','checked');" GroupName="btngroup1"
3
ответ дан 27 November 2019 в 06:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: