Не так давно я столкнулся с проблемой отображения количество некоторых объектов в единственном и множественном числе (”Нет комментариев” или “меньше минуты назад”, “1 комментарий” или “минуту назад”, “2 комментария” или “2 минуты назад”). Это достаточно просто в английском (только три возможных варианта), но я работаю над приложением, которое должно быть локализовано для нескольких культур. Например, в русском у нас есть как минимум 4 формы (”Нет комментариев”, “1 комментарий”, “2 комментария”, “5 комментариев”) и не столь очевидные правила для множественных чисел (”11 комментариев”, “111 комментариев”, но “21 комментарий”). Я не знаю других языков, но подозреваю, что некоторые из них могут быть более сложные, чем русский. Здесь вы найдете мои мысли о такой локализации строк.
Определение множественной формы числа в зависимости от культуры в .NET
(5,474 views) GridView с пейджингом в стиле Digg
(21,638 views) GridView — это отличный сильно кастомизируемый контрол ASP.NET. Сегодня я хочу показать, как создать наследник этого контрола, позволяющий добавлять пейджинг в стиле Digg в ваше приложение.
Использование свойства Panel.DefaultButton с контролом LinkButton в ASP.NET
(28,427 views) В ASP.NET есть существенное ограничение — на странице может быть только одна серверная форма. Даже если вы разрабатываете сложную страницу, которая выглядит как несколько форм с разными submit-кнопками, в действительности у вас есть только одна форма. Возникает следующая проблема: как браузер понимает, какая кнопка должна сработать, когда пользователь нажимает ENTER? Он использует первый контрол Button (что обычно неверно), а если вы используете LinkButton‘ы, они вообще не сработают. В ASP.NET 2.0 было добавлено новое свойство контролам Panel и HtmlForm — DefaultButton, которое используется для указания ID контрола, реализующего интерфейс IButtonControl (обычно Button и LinkButton). Этот контрол сработает, когда пользователь нажмет ENTER. Но существует одна большая проблема: контрол LinkButton не сработает в Firefox по нажатию ENTER. В этой статье я покажу, почему возникает проблема и предложу ее решение.
Русский