【发布时间】:2012-08-23 19:16:30
【问题描述】:
我对 web 开发还很陌生,在执行导出后的代码时,我似乎无法显示加载 gif。
我的 onclick 事件位于 gridview 内的 Imagebutton 上。你能帮我么?这里我有 ImageButtons:
<HeaderTemplate>
<asp:ImageButton ID="btnExport" OnClick="btnExport_Click" runat="server" ImageUrl="~/Images/excel.gif" AlternateText="Export top records!"/>
<asp:ImageButton ID="btnExportRed" OnClick="btnExportRed_Click" runat="server" ImageUrl="~/Images/excel_red.gif" AlternateText="Export all records!"/>
</HeaderTemplate>
这是我的代码:
protected void btnExport_Click(object sender, EventArgs e)
{
try
{
LoadWaitImage();
[functional code]
UnloadWaitImage();
}
catch (Exception ex)
{
lblMessage.Text = ex.Message;
upnlMsg.Update();
UnloadWaitImage();
}
}
private void LoadWaitImage()
{
ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "showMyImage", "hideLoading()", true);
}
private void UnloadWaitImage()
{
ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "showMyImage", "hideLoading()", true);
}
和要触发的js:
function showLoading()
{
document.getElementById('lblMessage').value = "";
document.getElementById('ucMarketing_btnSearch').disabled = true;
document.getElementById('btnClearFilters').disabled = true;
document.getElementById('imgSaveToSegments').disabled = true;
document.getElementById('divLoadingImg2').style.display = "";
}
function hideLoading()
{
document.getElementById('ucMarketing_btnSearch').disabled = false;
document.getElementById('btnClearFilters').disabled = false;
document.getElementById('imgSaveToSegments').disabled = false;
document.getElementById('divLoadingImg2').style.display = "none";
}
【问题讨论】:
-
LoadWaitImage打电话给hideLoading(),是不是打错字了? -
是的,它是: private void LoadWaitImage() { ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "showMyImage", "showLoading()", true); } private void UnloadWaitImage() { ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "hideMyImage", "hideLoading()", true); }
-
另外,这里是包含图像的 div: 它在GridView之外但在相同的更新面板
-
在 cmets 中阅读代码非常困难,您最好编辑您的问题并将其放在那里。
标签: javascript onclick loading code-behind