Подтвердить что ты не робот

Сделать выпадающий список элементов невыбранным

У меня есть раскрывающийся список, который имеет несколько вариантов генерации отчетов. На основе типа учетной записи пользователь имеет определенные параметры, которые должны быть видимыми, но не выбираемыми (в качестве стимула для их обновления).

Мне было интересно, знает ли кто-нибудь об этом пути.

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

любая помощь была бы высоко оценена.

shawn

4b9b3361

Ответ 1

Не уверен, что вы все еще ищете ответ для этого?

Отметить ответ Redman отлично, если вы можете определить список выбора на странице aspx, однако, если вы связываете выпадающий список динамически, очевидно, вы не можете.

У меня был успех с использованием следующего для достижения результата, который вам нужен (не уверен в полной поддержке браузера, но работает в более новых версиях IE)

foreach ( ListItem item in dropdownlist.Items )
{
    if ( [item should be disabled condition] )
    {
        item.Attributes.Add( "disabled", "disabled" );
    }
}

Это сделает ваши отключенные элементы серыми.

Ответ 2

Вы можете отключить тег <option> в html <select>

Смотрите: http://www.htmlref.com/reference/appa/tag_option.htm

в asp.net:

<asp:DropDownList ID="MyDropDownList" runat="server">
        <asp:ListItem Text="Standard Report" Value="SR"></asp:ListItem>
        <asp:ListItem Text="Enterprise Report" Value="ER" disabled="disabled"></asp:ListItem>
    </asp:DropDownList>

Ответ 3

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

foreach ( ListItem item in dropdownlist.Items )
{
  if ( [item should be disabled contdition] )
  {
     item.Enabled = false;
  }
}

и это сработало для меня.

Ответ 4

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

<asp:RequiredFieldValidator ID="RequiredFieldValidator" runat="server"
                        ErrorMessage="" ControlToValidate="DropDown" InitialValue="Unselectable Item"></asp:RequiredFieldValidator>

Ответ 5

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

Ответ 6

Вы можете попробовать

myDropDownList.Items.FindByValue( "ReportValue" ). Attributes.Add( "отключено", "отключено" );

Ответ 7

Если это HTML-контроль, то его очень легко сделать его Unselecteable. просто используйте HTML-элемент "optgroup" . например.

<select>
<optgroup label="Hardware"></optgroup>
<option id="1">mouse</option>
<option id="2">keyboard</option>
<option id="3">monitor</option>
<optgroup label="Software"></optgroup>
<option id="Option1">windows XP</option>
<option id="Option2">MS Office</option>
<option id="Option3">VStudio</option>
</select>

(ПРИМЕЧАНИЕ: это работает как в IE/firefox)

Спасибо Сушил Джиндер

Ответ 8

Попробуйте это

myDropDownList.Items.FindByValue("ReportValue").Enabled = false;

Это приведет к отключению элемента из списка, в основном не отображая его в списке.

"ReportValue"= значение элемента, который нужно отключить.