我在一个使用telerik RadComboBoxes的asp.net网页上工作,并试图在所选索引更改时使用RadAjaxLoadingPanel显示加载微调器,并在其他一些代码完成时隐藏微调器。
我遇到了一个问题,每当组合框的索引更改时,页面都会刷新,因此在页面刷新后调用我的OnSelectedIndexChanged函数,而我试图显示的RadAjaxLoadingPanel还不存在。有没有办法在组合框索引更改之后、页面刷新之前运行代码来显示我的加载微调器?
组合框示例
<telerik:RadComboBox runat="server" ID="cboReportTypes" OnSelectedIndexChanged="cboReportTypes_SelectedIndexChanged" AutoPostBack="true"></telerik:RadComboBox>加载面板
<telerik:RadAjaxLoadingPanel ID="ModalLoadingPanel" runat="server" Transparency="10" BackColor="#E0E0E0" Modal="true">
<div style="margin-left: auto; margin-right: auto; margin-top: 45px; margin-bottom: auto; width: 135px; height: 80px;"
class="modalProgress">
<div class="spinner"></div>
</div>
</telerik:RadAjaxLoadingPanel>显示微调器的javascript函数
function showActivityIndicator() {
console.log("showing the spinner");
var loadingPanel = $("#<%= ModalLoadingPanel.ClientID %>");
loadingPanel.show();
}下拉索引更改时调用的C#函数(仅显示显示微调器的部分)
protected void cboReportTypes_SelectedIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)
{
ClientScript.RegisterStartupScript(this.GetType(), "startActivityIndicator", "showActivityIndicator()", true);
}显示微调控制项工作正常,但是当从组合框函数调用它时,页面会出现错误,因为loadingPanel返回为null,因为页面刷新了。
感谢您的帮助,谢谢!
发布于 2016-11-16 04:56:08
因此,经过大量的搜索,我最终在浏览器中打开的众多选项卡中找到了解决方案。
我发现还有另一个可用于RadComboBox的回调函数,名为OnClientSelectedIndexChanging,它在页面刷新之前运行。因此,通过直接从回调函数调用javascript函数,我能够让微调控件在索引更改后显示,同时用户等待页面用更改后的数据刷新。
<telerik:RadComboBox runat="server" ID="cboReportTypes" OnClientSelectedIndexChanging="showActivityIndicator" OnSelectedIndexChanged="cboReportTypes_SelectedIndexChanged" AutoPostBack="true"></telerik:RadComboBox>https://stackoverflow.com/questions/40619122
复制相似问题