OnCheckedChanged не запускается при повторном заполнении формы

У меня есть Gridview с двумя кнопками "Изменить" и "Удалить".

При редактировании команда row вызывает функцию «Populate()», которая заполняет форму, расположенную над сеткой на панели (устанавливает visible = true ).

Проблема:

У меня есть флажок «cbX», текстовое поле «txtX» и раскрывающийся список «ddlX» (видимый = false)

если выбран cbX => ddlX.Visible = true и txtX.Enabled = false (у меня есть функция onCheckChangeed)

Когда я решил отредактировать запись в сетке, которая изначально имеет cbX.Checked = true, я столкнулся с проблемой, когда пользователь пытается снять флажок. Ошибка не возвращается, он просто не вызывает onCheckChanged, когда мне это нужно, чтобы скрыть ddlX и включить txtX

<asp:TextBox runat="server" ID="txtX" Width="180px"></asp:TextBox>

<asp:CheckBox runat="server" ID="cbX" AutoPostBack="true" Text="Unable to Obtain " OnCheckedChanged="cbX_CheckedChanged" />

<asp:DropDownList runat="server" ID="ddlX" DataTextField="Name" DataValueField="Code" AppendDataBoundItems="True" OnSelectedIndexChanged="ddlX_SelectedIndexChanged" Width="350px" AutoPostBack="true" CausesValidation="true" Enabled="false" Visible="false"></asp:DropDownList>

person HelpWanted    schedule 03.07.2017    source источник
comment
Свяжите DataBind в if (!isPostBack) в Page_Load   -  person 5377037    schedule 03.07.2017
comment
постарайтесь уточнить, как это влияет на это. Также if ( ! IsPostBack) содержит функцию, которая заполняет сетку. что именно я должен там привязать? Примечание. При загрузке страницы 3 указанных поля скрыты до тех пор, пока пользователь не решит отредактировать поле из сетки. @Асиф.Али   -  person HelpWanted    schedule 04.07.2017
comment
единственная проблема заключается в том, что когда я снимаю флажок (в первый раз) после того, как я выбираю для редактирования поля, событие checkchanged не запускается, но затем работает нормально после проверки и снятия отметки.   -  person HelpWanted    schedule 04.07.2017
comment
Это связано с тем, что CheckBox не является элементом управления gridview. Вы должны прикрепить событие OnCheckChanged к событию gridView RowBinding.   -  person 5377037    schedule 04.07.2017


Ответы (1)


Догадаться. Мне нужно было вручную добавить это:

cbX.CheckedChanged += new EventHandler(this.cbX_CheckedChanged);

в функции, которая повторно заполняет форму.

person HelpWanted    schedule 04.07.2017