#javascript #c# #asp.net
Вопрос:
У меня есть пользовательский элемент управления, который содержит расширитель кнопки подтверждения и расширитель модального всплывающего окна. Это выглядит так:
<asp:Panel ID="panelConfirmBox" runat="server" Style="display:none;">
<asp:Button ID="btnConfirmSelection" runat="server" CssClass="hidden"/>
<asp:Button ID="btnNo" runat="server" Text="No" />
<asp:Button ID="btnYes" runat="server" Text="Yes" />
<asp:ModalPopupExtender Id="popupConfirmBox" runat="server" PopupControlID="panelConfirmBox" CancelControlID="btnNo" OkControlId="btnYes" />
<asp:ConfirmButtonExtender ID="btnConfirm" runat="server" DisplayModalPopupID="popupConfirmBox"/>
</asp:Panel>
Пользовательский элемент управления получает раскрывающийся список. При изменении выбора выпадающего списка должно запускаться событие onclick кнопки. В пользовательском элементе управления aspx.cs есть следующий код:
public string TargetControlId { set { popupConfirmBox.TargetControlID = btnConfirm.TargetControlID = btnConfirmSelection.ID; } }
public DropDownList DDL { get; set; }
public EventHandler OnClick { set { btnConfirmSelection.Click = value; } }
public bool Enabled { set { btnConfirm.Enabled = value; } get { return btnConfirm.Enabled; } }
protected void Page_Load(object sender, EventArgs e)
{
if (DDL != null)
{
string script = "$('#" DDL.ClientID "').on('change', function () { $('#" btnConfirmSelection.ClientID "').click();}); ";
ScriptManager.RegisterStartupScript(Page, Page.GetType(), "CallChange" ID, script, true);
}
}
Использование пользовательского элемента управления в aspx выглядит следующим образом:
<asp:DropDownList ID="ddl" runat="server" AutoPostBack="false" />
<aa:DDLConfirmPopup runat="server" ID="ConfirmPopupSelectionChange" Title="aaa" Message="bbb" TargetControlId=""/>
и в aspx.cs:
ConfirmPopupSelectionChange.DDL = ddl;
ConfirmPopupSelectionChange.OnClick = new EventHandler(func);
protected void func(object sender, EventArgs e)
{
}
У меня есть несколько экземпляров пользовательского элемента управления, большинство из них работают нормально, за исключением одного. Как только я установлю свойство Enabled=»false», даже если я верну ему значение true, оно снова не отобразит всплывающее окно, а напрямую перейдет к функции onClick.
Это функция, которая изменила свойство enabled:
private void manageConfirmPopup()
{
if (---)
ConfirmPopup.Enabled = true;
else
ConfirmPopup.Enabled = false;
}
Я вижу, что свойство enable изменяется правильно, но даже после того, как оно было установлено в значение true, подтверждение не работает.
Что не так с моим кодом?
Спасибо!