При нажатии кнопки выполнить эту операцию
Это код:
protected void btnProceed_Click(object sender, EventArgs e)
{
if (!Page.IsValid)
{
return;
}
MembershipCreateStatus createstatus;
UserDetails us = new UserDetails();
MembershipUser Newuser = Membership.CreateUser(txtusrname.Text, txtpassword.Text, txtemailid.Text, "Question", "Answer", true, out createstatus);
if (Newuser != null && createstatus == MembershipCreateStatus.Success)
{
if (RdoAuthorReviewer.SelectedValue =="Author")
{
Roles.AddUserToRole(txtusrname.Text, "Author");
}
int NoOfRecordsAffected = us.createUser();
try
{
if (NoOfRecordsAffected > 0)
{
Mail.sendmail();
}
else
{
Response.Redirect("SignUp-Error.aspx",true);
}
}
}
}
}
на странице aspx Код кнопки:
<asp:Button ID="btnProceed" runat="server" CssClass="button notransitions" Text="Register User and Send Letter" ValidationGroup="reqGroup" onclick="btnProceed_Click" TabIndex="16" style="width:303px; margin-top:15px;" />
Мое требование:
1) При нажатии кнопки кнопка должна быть отключена, или загрузочное изображение появляется в центре страницы при нажатии кнопки.
1 ответ
Решение
Вы можете реализовать свой сценарий "загрузка изображения в центр страницы", используя Free AjaxControlToolkit или любой другой набор инструментов на основе Ajax, если у вас уже есть.
Вам нужно будет использовать AjaxLoadingPanel и AjaxManager. Пример того, как это будет выглядеть для вашего случая:
<ajax:AjaxManager ID="AjaxManager1" runat="server">
<AjaxSettings>
<ajax:AjaxSetting AjaxControlID="btnProceed">
<UpdatedControls>
<ajax:AjaxUpdatedControl ControlID="btnProceed" LoadingPanelID="AjaxLoadingPanel1" />
<ajax:AjaxUpdatedControl ControlID="AnythingElseID" LoadingPanelID="AjaxLoadingPanel1" /> <%-- For example if you have specified a whole page's id you can use it here to block all page or write any specific control's id's you want to block--%>
<ajax:AjaxUpdatedControl ControlID="AnythingElseIDWhereImgWillbeShown" LoadingPanelID="AjaxLoadingPanel2" /> <%-- Add update control with loadingpanel2 only once on the page if you want only 1 loading image--%>
</UpdatedControls>
</ajax:AjaxSetting>
</AjaxSettings>
</ajax:AjaxManager>
<ajax:AjaxLoadingPanel ID="AjaxLoadingPanel1" runat="server" Transparency="1" HorizontalAlign="Center"></ajax:AjaxLoadingPanel>
<ajax:AjaxLoadingPanel ID="AjaxLoadingPanel2" runat="server" Transparency="1" HorizontalAlign="Center">
<div style="margin-top:100px"> <%-- You can specify where to show your image from the starting place of control for which you will specify this panel in updatecontrol--%>
<asp:Image ID="Image1" runat="server" ImageUrl="loading.gif"></asp:Image>
</div>
</ajax:AjaxLoadingPanel>