IE9 ошибка с Html.DropDownListFor - PullRequest
0 голосов
/ 26 января 2012

Здравствуйте, мне нужна помощь с ошибкой в ​​Internet Explorer 9. В настоящее время я разрабатываю некоторые экраны CRUD в ASP.NET 4 MVC 3 Razor. На нескольких экранах я использую @ Html.DropDowListFor для создания простых ссылок для внешних ключей.

Но когда мне их мало в IE9 (и только в IE9), DropDownList будет отображаться меньше его обычного размера, текст будет отображаться на несколько пикселей ниже обычного, и если отображаемое слово будет больше, чем небольшое количество символов (не уверен, какое число, я думаю, что это около 10), он не будет полностью отображен. Странная часть в том, что когда я нажимаю на DropDownList, он сам себя исправляет.

Код просмотра:

@Html.DropDownListFor(model => model.Asset.FkAssetTypeId, new SelectList(Model.AssetTypes, "AssetTypeId", "Name"))
@Html.ValidationMessageFor(model => model.Asset.FkAssetTypeId)

Код модели:

[Display(ResourceType = typeof(I18N_Asset), Name = "Label_Asset_FkAssetTypeId")]
public int FkAssetTypeId { get; set; }

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

1 Ответ

1 голос
/ 06 февраля 2012

Я обнаружил, в чем проблема, я использовал вкладки JQuery на той же странице.Это привело к тому, что размер переданного списка для drop-listfor-s не масштабировался до css, установленного для всего сайта.но вместо этого отображает выпадающий список для с размером фронта вкладок JQuery, а затем устанавливает размер фронта для css.

Я решил эту проблему, используя Javascript для установки размера шрифта в функции Document.ready:

// IE9 causes a bug where the dropdownlists will not be displayed correctly because they won't adapt to their current font-size
// this javascript fixes that by resetting the font-size
if (window.navigator.systemLanguage && (!document.documentMode || document.documentMode === 9)) { //check if IE9 is being used
    var list = document.getElementsByTagName('Select'); // get all dropdownlists
    for (i = 0; i < list.length; i++) {
        list[i].style.fontSize = list[i].style.fontSize; // reset the font-size
    }
}
...