Получение значения из ComboBox? - PullRequest
0 голосов
/ 30 мая 2019

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

<sq8:ComboBox runat="server" ID="cboAgree"><Items>
<sq8:ComboBoxItem runat="server" Text="Agree"></sq8:ComboBoxItem>
<sq8:ComboBoxItem runat="server" Text="Disagree"></sq8:ComboBoxItem>
</Items>
</sq8:ComboBox>
<sq:BindableControl runat="server" TargetControlID="cboAgree" DataField="Agreement"></sq:BindableControl>

Я хочу получить выбранное значение («Согласен» или «Не согласен») и использую его как условие, чтобы скрыть / показать сетку намоя форма:

   if (value == "Disagree") {
  commentsGrid.style.visibility = "visible";
  }else{
  commentsGrid.style.visibility = "hidden";
  } 

Я пробовал несколько вещей, но кажется, что проблема заключается в том, как форма загружается, а поле со списком не имеет значения в этот момент.Я всегда получаю сообщение об ошибке, что мой comboBox "cboAgree" имеет значение null.

Может кто-нибудь посоветовать?

1 Ответ

0 голосов
/ 30 мая 2019

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

Этот сценарий описан в документации здесь , но в основном вы хотите сделать следующее:

  1. Добавьте следующий блок в существующий JavaScript:
function onSelectedIndexChanged(sender, eventArgs) 
{
    var item = eventArgs.get_item();

    if (value == "Disagree") {
        commentsGrid.style.display = "block";
    } else {
        commentsGrid.style.display = "none";
    } 
}

Я бы предложил установить для свойства display значение none и block вместо использования visibility с hidden и visible. Этот ответ охватывает различия и причины, по которым вы предпочитаете использовать свойство display в этом случае.

Обновите ваш ComboBox для вызова нового метода Javascript:
<sq8:ComboBox runat="server" ID="cboAgree"
onclientselectedindexchanged="onSelectedIndexChanged">
...