Привет и спасибо за вашу помощь заранее. Вот моя проблема:Событие нажатия кнопки MasterPage не срабатывает при первом щелчке, но при втором нажатии
- У меня есть веб-страница, разделенная на MasterPage и главную страницу.
- Ничто ни на одной странице не настроено динамически (без кода), все установлено на странице .aspx.
- На MasterPage у меня есть кнопка «Сохранить».
- На главной странице У меня есть несколько текстовых полей.
- В текстовых файлах главной страницы есть событие (void SumAll (...)), которое запускается, когда фокус выходит из любого из этих флажков.
- На MasterPage У меня есть событие click, связанное с кнопкой «Сохранить».
Это то, что happends:
- я внести изменения в любом из текстовых полей на главной странице, но фокус не выходит из этого текстового поля (нет() события SumAll не fireing сразу) ,
- Затем я нажимаю кнопку «Сохранить» в MasterPage.
Я ожидаю, что кнопка MasterPage «Сохранить» нажата, чтобы стрелять, но она никогда не делает! Событие изменения главной страницы (SumAll()) срабатывает, но событие щелчка MasterPage не выполняется.
Если я снова нажимаю кнопку «Сохранить» MasterPage, успешно запускается событие щелчка MasterPage, но, конечно же, событие с изменением основной страницы на главной странице. То же самое верно, когда я просто нажимаю кнопку «Сохранить» MasterPage без внесения каких-либо изменений на главной странице.
Вот пример моего кода. Главная страница TextChanged событие:
protected void SumTheAmounts(object sender, EventArgs e)
{
Decimal lease = 0.00M;
Decimal securityDeposit = 0.00M;
Decimal miscellanious = 0.00M;
Decimal sumTotal = 0.00M;
Decimal.TryParse(txtMiscellaneousAmount.Text, out miscellanious);
Decimal.TryParse(txtSecurityDepositAmount.Text, out securityDeposit);
Decimal.TryParse(txtLeaseAmount.Text, out lease);
sumTotal = miscellanious + securityDeposit + lease;
txtAmount.Text = sumTotal.ToString();
// Set focus to the next textbox
TextBox tb = (TextBox)sender;
switch (tb.ID)
{
case "txtLeaseAmount":
txtSecurityDepositAmount.Focus();
break;
case "txtSecurityDepositAmount":
txtMiscellaneousAmount.Focus();
break;
case "txtMiscellaneousAmount":
txtMiscellaneousAmount.Focus(); // Send back to the same. .
break;
default:
break;
}
}
И мой Masterpage в "Сохранить" нажатие кнопки событие:
protected void btnSave_Click(object sender, EventArgs e)
{
// Save every little thing...
switch (ContentPageLoaded)
{
case "CheckRequest":
((CheckRequest)ContentMain.Page).UpdateMe();
break;
case "PicturesLoad":
((PicturesLoad)ContentMain.Page).UpdateMe();
break;
default:
break;
}
}
Markup:
<asp:Panel ID="pnlSave" CssClass="ButtonClass" runat="server">
<asp:Button ID="btnSave" style="width:160px; font-size:small; position:relative; color:Blue; top: 0px; left: 0px;" runat="server" Text="Save" onclick="btnSave_Click" CausesValidation="False" />
</asp:Panel>
PageLoad:
if (!IsPostBack)
{
Button saveButton = (Button)Master.FindControl("btnSave");
branchName = (string)Session["BranchName"];
branchLegalData = new Classes.BranchLegalData();
if ((branchName != null) && (branchName.Length > 0))
{
FillThisPageData();
}
}
else { }
Master.ContentPageLoaded = "CheckRequest";
Любая помощь очень ценится! Спасибо
Можете ли вы показать нам разметку для кнопки сохранения на главной странице? Можем ли мы также увидеть любой код, который у вас есть в page_load для любой страницы? –
page_load для MasterPage позволяет только кнопки на MasterPage, так что это не имеет смысла. Кнопка «Сохранить» всегда включена. – stevekershaw
Пожалуйста, введите код в исходный вопрос, а не комментарии. На этот раз я сделал это для вас. –