通过C#代码隐藏打开CSS弹出窗口

通过C#代码隐藏打开CSS弹出窗口,c#,html,css,asp.net,C#,Html,Css,Asp.net,我有如下HTML代码: <a id="PopUp" runat="server" href="#openModal">Open me</a> // this is a way to open the pop up window via HTML <div id="openModal" runat="server" class="modalDialog"> <div>

我有如下HTML代码:

     <a id="PopUp" runat="server" href="#openModal">Open me</a> 
// this is a way to open the pop up window via HTML

                <div id="openModal" runat="server" class="modalDialog">
        <div>
            <a href="#close" title="Close" class="close">X</a>
            <h2 style="text-align:center">Error</h2>
            <p style="text-align:center"> Please select the product first!</p>
        </div>
    </div>
但是这些都不起作用,有人能帮我解决这个问题吗,我怎么能从代码背后做到这一点呢?谢谢

另外,该代码设置为当用户单击listview内的按钮时触发(普通asp.net按钮)

编辑:(Roberth,你的意思是这样吗??):


但是什么也没发生…

您不能像在javascript中那样从代码隐藏处开始浏览器中的某些操作。您只能在回发响应期间更新客户端

要更新客户端而不刷新整个页面,应使用UpdatePanel。要启动弹出窗口,可以使用ModalPopupXtender(NuGet中AjaxControlToolkit的一部分)

因此,整个过程如下:

  • 用户做了一些触发回发的事情
  • 代码隐藏使用以下代码打开模式对话框:Demo_ModalPopupExtender.Show()。您还可以更新它的标题、消息或其中的任何其他控件
  • 浏览器中的模式对话框html代码已更新,因为它位于更新面板中
  • 对话框打开
  • 下面是一个示例:您可以使用LabelMsgBox.text=

    <asp:Button ID="HiddenButtonPopUpMsgBox" runat="server" Style="display: none" />
        <ajaxToolkit:ModalPopupExtender ID="MsgBoxModalPopupExtender" runat="server" DropShadow="True"
            PopupDragHandleControlID="DragPanelMsgBox" BackgroundCssClass="popUpbackground"
            CancelControlID="ButtonMsgBoxClose" PopupControlID="PanelMsgBox" TargetControlID="HiddenButtonPopUpMsgBox">
        </ajaxToolkit:ModalPopupExtender>
        <asp:Panel ID="PanelMsgBox" runat="server" CssClass="popUpPanel" Style="display: none"
            DefaultButton="ButtonMsgBoxClose">
            <asp:Panel ID="DragPanelMsgBox" runat="server">
                <div class="popUpDragPanel">
                </div>
            </asp:Panel>
            <fieldset>
                <legend class="legendlist">Message</legend>
                <asp:UpdatePanel ID="UpdatePanelMsgBox" runat="server" UpdateMode="Conditional">
                    <ContentTemplate>
                        <asp:Panel ID="PanelMsgScroll" runat="server" CssClass="PopUpPanelMsgPanel">
                            <asp:Label ID="LabelMsgBox" runat="server" Text="-" CssClass="MsgBoxLabel"></asp:Label>
                        </asp:Panel>
                    </ContentTemplate>
                </asp:UpdatePanel>
                <div align="center">
                    <asp:Button ID="ButtonMsgBoxClose" runat="server" Text="OK"
                        CssClass="button" />
                </div>
            </fieldset>
        </asp:Panel>
    
    
    消息
    
    您可以使用以下命令打开它:

    public static void MsgBox(string title, Page page)
            {
                AjaxControlToolkit.ModalPopupExtender ModalPopupExtender =
                    page.FindControl("ctl00$MainContent$MsgBoxModalPopupExtender") as AjaxControlToolkit.ModalPopupExtender;
                System.Web.UI.WebControls.Label Label =
                    page.FindControl("ctl00$MainContent$LabelMsgBox") as System.Web.UI.WebControls.Label;
    
                string message = "<b>" + title + "</b>";
    
                Label.Text = message;
    
                UpdatePanel UpdatePanel = page.FindControl("ctl00$MainContent$UpdatePanelMsgBox") as UpdatePanel;            
                UpdatePanel.Update();
                ModalPopupExtender.Show();                
    
            }
    
    publicstaticvoidmsgbox(字符串标题,页面)
    {
    AjaxControlToolkit.ModalPopupXtender ModalPopupXtender=
    page.FindControl(“ctl00$MainContent$MsgBoxModalPopupExtender”)作为AjaxControlToolkit.ModalPopupExtender;
    System.Web.UI.WebControls.Label标签=
    page.FindControl(“ctl00$MainContent$LabelMsgBox”)作为System.Web.UI.WebControls.Label;
    字符串消息=“title+”;
    Label.Text=消息;
    UpdatePanel UpdatePanel=page.FindControl(“ctl00$MainContent$UpdatePanelMsgBox”)作为UpdatePanel;
    UpdatePanel.Update();
    ModalPopupExtender.Show();
    }
    
    请检查我的最新答案,这是您想要的吗?是的,您的思路是正确的。但是您不必“查找”控件,您应该能够使用其ID访问它。为什么您可以在不使用UpdatePanel的情况下首先尝试它,如下所示:
                ModalPopupExtender mpe = e.Item.FindControl("kontroller") as ModalPopupExtender;
                mpe.Show();
                return;
    
    <asp:Button ID="HiddenButtonPopUpMsgBox" runat="server" Style="display: none" />
        <ajaxToolkit:ModalPopupExtender ID="MsgBoxModalPopupExtender" runat="server" DropShadow="True"
            PopupDragHandleControlID="DragPanelMsgBox" BackgroundCssClass="popUpbackground"
            CancelControlID="ButtonMsgBoxClose" PopupControlID="PanelMsgBox" TargetControlID="HiddenButtonPopUpMsgBox">
        </ajaxToolkit:ModalPopupExtender>
        <asp:Panel ID="PanelMsgBox" runat="server" CssClass="popUpPanel" Style="display: none"
            DefaultButton="ButtonMsgBoxClose">
            <asp:Panel ID="DragPanelMsgBox" runat="server">
                <div class="popUpDragPanel">
                </div>
            </asp:Panel>
            <fieldset>
                <legend class="legendlist">Message</legend>
                <asp:UpdatePanel ID="UpdatePanelMsgBox" runat="server" UpdateMode="Conditional">
                    <ContentTemplate>
                        <asp:Panel ID="PanelMsgScroll" runat="server" CssClass="PopUpPanelMsgPanel">
                            <asp:Label ID="LabelMsgBox" runat="server" Text="-" CssClass="MsgBoxLabel"></asp:Label>
                        </asp:Panel>
                    </ContentTemplate>
                </asp:UpdatePanel>
                <div align="center">
                    <asp:Button ID="ButtonMsgBoxClose" runat="server" Text="OK"
                        CssClass="button" />
                </div>
            </fieldset>
        </asp:Panel>
    
    public static void MsgBox(string title, Page page)
            {
                AjaxControlToolkit.ModalPopupExtender ModalPopupExtender =
                    page.FindControl("ctl00$MainContent$MsgBoxModalPopupExtender") as AjaxControlToolkit.ModalPopupExtender;
                System.Web.UI.WebControls.Label Label =
                    page.FindControl("ctl00$MainContent$LabelMsgBox") as System.Web.UI.WebControls.Label;
    
                string message = "<b>" + title + "</b>";
    
                Label.Text = message;
    
                UpdatePanel UpdatePanel = page.FindControl("ctl00$MainContent$UpdatePanelMsgBox") as UpdatePanel;            
                UpdatePanel.Update();
                ModalPopupExtender.Show();                
    
            }