none
我想点击btn_Confirm后,div_Addip不消失,还保持在愿有位置,不要告诉我去掉 __doPostBack('btn_Confirm', e); 这样的话和服务器交互就没意义了 RRS feed

  • 问题

  •        function js_Ok(sender, e) { 
                __doPostBack('btn_Confirm', e); 
            } 
     
        </script> 
     
    </head> 
    <body> 
        <div id="div_Addip_Backgroud"
        </div> 
        <form id="form1" runat="server"
        <asp:Button ID="btn_AddNetworkAddress" runat="server" Text="添加网络地址" /> 
        <cc1:ModalPopupExtender ID="ModalPopupExtender1" runat="server" TargetControlID="btn_AddNetworkAddress" 
            PopupControlID="div_Addip" CancelControlID="btn_Cancel" OkControlID="btn_Confirm" 
            Drag="False" BackgroundCssClass="div_Addip_Backgroud" OnOkScript="js_Ok()"
        </cc1:ModalPopupExtender> 
        <div id="div_Addip"
            <cc1:TabContainer ID="TabContainer1" runat="server" ActiveTabIndex="-1"  
                Width="400px"
                <cc1:TabPanel ID="tp_Addsingleip" runat="server" HeaderText="添加单个IP"
                    <HeaderTemplate> 
                        添加单个IP 
                    </HeaderTemplate> 
                    <ContentTemplate> 
                        <div> 
                            IP 地址:<asp:TextBox ID="txt_Singleip" runat="server" Width="60%"></asp:TextBox> 
                        </div> 
                        <div> 
                            子网掩码:<asp:TextBox ID="txt_Subnet" runat="server" Width="60%"></asp:TextBox> 
                        </div> 
                        <div> 
                            默认网关:<asp:TextBox ID="txt_Defaultgateway" runat="server" Width="60%"></asp:TextBox> 
                        </div> 
                        <div> 
                            VLAN:<asp:DropDownList ID="ddl_Vlan" runat="server" Width="60%"
                            </asp:DropDownList> 
                        </div> 
                        <div> 
                            描  述:<asp:TextBox ID="txt_Description" runat="server" Width="60%"></asp:TextBox> 
                        </div> 
                        <div> 
                            端  口:<asp:TextBox ID="txt_Port" runat="server" Width="60%"></asp:TextBox> 
                        </div> 
                    </ContentTemplate> 
                </cc1:TabPanel> 
                <cc1:TabPanel ID="tp_Addmultiip" runat="server" HeaderText="添加多个IP"
                    <HeaderTemplate> 
                        添加多个IP 
                    </HeaderTemplate> 
                    <ContentTemplate> 
                        bbb</ContentTemplate> 
                </cc1:TabPanel> 
            </cc1:TabContainer> 
            <asp:Button ID="btn_Confirm" runat="server" Text="确定" OnClick="btn_Confirm_Click" /> 
            <asp:Button ID="btn_Cancel" runat="server" Text="取消" /> 
        </div>

    2009年2月11日 15:37

答案

  • 你好,
    当点击btn_Confirm这个button这个服务器端控件时,页面重新刷新了。你说的那个div当然会恢复到初始状态了。这个我认为就是ModalPopupExtender的工作原理。如果你想实现你说的那种功能,我觉得你可以不用这个Extender。用一个Panel+Div,结合CSS Index和UpdatePanel来实现。


    Microsoft Online Community Support
    2009年2月13日 2:56

全部回复

  •   function js_Ok(sender, e) {
    //这里加处理消失的代码
                __doPostBack('btn_Confirm', e); 
            } 

    孟宪会
    2009年2月12日 0:40
    版主
  • 孟老师,我加了,还是不行。

            function js_Ok(sender, e) {  
                $find('ModalPopupExtender1').show();//我加了这条代码,可是不行。  
                __doPostBack('btn_Confirm', e);  
            } 

    后台:

            protected void btn_Confirm_Click(object sender, EventArgs e)  
            {  
                Response.Write("aaa");  
            } 
    2009年2月12日 2:35
  •  因为'ModalPopupExtender我没有安装,无法测试,建议你先看看'ModalPopupExtender文档,搞清楚这个控件的详细用法。如果再不行,我可以安装一个测试
    孟宪会
    2009年2月12日 3:34
    版主
  • 老师,这个控件就是弹出一个自定义的层。就像showmodeldialog一样。只不过样式可以自己定义,比较好看。

    其实只要在vs2008上装一个ajax toolkit能看到效果

    TargetControlID="btn_AddNetworkAddress"  就是当我点击btn_AddNetworkAddress按钮时弹出一个div
    PopupControlID="div_Addip"                          就是所弹出的div
    OkControlID="btn_Confirm"                            就是指定模仿modeldialog的“确定按钮”的控件
    OnOkScript="js_Ok()"                                     就是当点击"确定"按钮后执行的操作。从名字上就可以看出,他执行的是script。但是我想让他执行服务器端事件,这时只有用 __doPostBack('btn_Confirm', e); 可是每当点击确定后,这个div会消失,我不想让他消失(因为我想做一个IP地址输入的效果,每加一个IP DIV就消失一次,这样很麻烦)。我加上$find('ModalPopupExtender1').show();后还是没办法解决。所以请老师在闲暇的时候帮忙看一下。万分感谢。

    2009年2月12日 4:53
  • 你好,
    当点击btn_Confirm这个button这个服务器端控件时,页面重新刷新了。你说的那个div当然会恢复到初始状态了。这个我认为就是ModalPopupExtender的工作原理。如果你想实现你说的那种功能,我觉得你可以不用这个Extender。用一个Panel+Div,结合CSS Index和UpdatePanel来实现。


    Microsoft Online Community Support
    2009年2月13日 2:56