我有一个 ModalPopupExtender,当有长时间运行的后台任务时,我想将它用作状态弹出窗口。
<script language="javascript" type="text/javascript">
function ShowInfoPopup(Caption, Message) {
$find("<%= tcPopUpCaption.ClientID %>").innerHTML = Caption;
$find("<%= tcPopUpMessage.ClientID %>").innerHTML = Message;
$find("<%= mpe.ClientID %>").Show();
}
</script>
<asp:LinkButton runat="server" ID="btnPopup" />
<asp:Panel ID="pnlInfoPopup" runat="server" Style="display: none;"
Width="350px" CssClass="InfoPopup_Panel">
<asp:Table ID="Table1" runat="server" CssClass="InfoPopup_Layout"
Style="margin-bottom: 0px">
<asp:TableRow CssClass="InfoPopup_ActionRow">
<asp:TableCell BorderStyle="None">
<asp:Button ID="btnClose" runat="server" Text="x"
ToolTip="Close" BorderStyle="Outset"
UseSubmitBehavior="false" OnCommand="doCommand"
CommandName="ClosePopUp" />
</asp:TableCell>
</asp:TableRow>
<asp:TableHeaderRow Style="border-bottom: thick solid white">
<asp:TableHeaderCell ID="tcPopUpCaption" Width="100%"
BorderStyle="None" runat="server"
Text="Popup Caption" />
</asp:TableHeaderRow>
<asp:TableRow>
<asp:TableCell Width="50%" BorderStyle="None" runat="server"
ID="tcPopUpMessage" ClientIDMode="Static"
Text="Popup Message" />
</asp:TableRow>
</asp:Table>
</asp:Panel>
<asp:ModalPopupExtender ID="mpe" runat="server" PopupControlID="pnlInfoPopup"
BackgroundCssClass="mpeBackground" DropShadow="true"
TargetControlID="btnPopup" />
<asp:Button ID="btnS" runat="server" Text="Send" OnCommand="doCommand"
CommandName="send" UseSubmitBehavior="false" Width="100px"
Height="45px" ClientIDMode="Static"
OnClientClick="ShowInfoPopup('Please wait...', 'Sending...')" />
<asp:Button ID="btnL" runat="server" Text="Load" OnCommand="doCommand"
CommandName="load" UseSubmitBehavior="false" Width="100px"
Height="45px" ClientIDMode="Static"
OnClientClick="ShowInfoPopup('Just a sec...', 'Loading...')" />
当用户点击任一按钮时(这只是一个示例场景),它会显示带有相关标题和消息的弹出窗口,然后执行正常的回发以执行(长)任务。
但是,在“ShowInfoPopup”脚本中,标题和消息的 $find 由于找不到控件而失败,它返回 NULL。
欢迎任何建议。
最佳答案
使用 $get
而不是 $find
来获取 DOM 元素的引用。 $find
应该仅用于获取客户端 javascript 对象的引用。
关于c# - ModalPopupExtender 作为状态框,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16789385/