`

Ajax扩展控件

阅读更多

 

9.ConfirmButtonExtender(确定按钮控件)

 

该控件的效果跟http://kendezhu.iteye.com/admin/blogs/755237的的效果差不多。

 

<script type="text/javascript">

function cancel()

{

  document.getElementById("<%=Label1.ClientID%>").innerHTML="你取消了删除!";

}

</script>

<asp:Button ID="Button1" runat="server" Text="删除" onclick="Button1_Click" />

<ajax:ConfirmButtonExtender ID="Button1_ConfirmButtonExtender" runat="server" 

ConfirmText="确定要删除吗?" Enabled="True" TargetControlID="Button1" OnClientCancel="cancel">

</ajax:ConfirmButtonExtender>

各个属性很好理解,不过与我们那个补不同的是,该Ajax控件还可以在取消后执行一个js函数,相关属性是OnClientCancel

 

另外还可以与ModalPopupExtender(弹出模态窗口控件)结合,美化一下弹出框:

http://www.cnblogs.com/msnadair/archive/2010/05/17/1737084.html

 

<asp:Button ID="Button2" runat="server" Text="删除2" onclick="Button2_Click" />

<ajax:ConfirmButtonExtender ID="Button2_ConfirmButtonExtender" runat="server"  Enabled="True" 

TargetControlID="Button2" OnClientCancel="cancel" DisplayModalPopupID="Button2_ModalPopupExtender">

</ajax:ConfirmButtonExtender>

与前面不同之处就是多了一个指定弹出模态窗口控件ID的DisplayModalPopupID属性,这样就把弹出窗口任务交给了

ModalPopupExtender,一旦设置了此属性就意味着确定事件与取消事件都已确定,在后面ModalPopupExtender的属性里不能设置OnOkScript与OnCancelScript来设置新的js确定与取消事件了,但单独使用ModalPopupExtender时则没有这个限制了。

<ajax:ModalPopupExtender ID="Button2_ModalPopupExtender" runat="server"  TargetControlID="Button2" PopupControlID="PNL" OkControlID="OK" CancelControlID="Cancel" BackgroundCssClass="modalBackground">

</ajax:ModalPopupExtender>

ModalPopupExtender里的TargetControlID指定哪个控件来控制弹出模态窗口(一般是button和linkbutton,事实上你在设计界面给服务端控件加Ajax扩展控件时会发现不同的服务端控件会有不同的Ajax扩展控件);PopupControlID指定弹出的模态窗口的ID,最好将该控件的display设为none;OkControlID指定一个按钮控件ID,该按钮会触发TargetControlID里的服务端事件;CancelControlID指定一个按钮控件ID,该按钮会触发ConfirmButtonExtender里的OnClientCancel指定的js事件;BackgroundCssClass指定弹出的模态窗口以外的地方的样式,类似与遮罩的功能。

<asp:Panel ID="PNL" runat="server" style="display:none; width:200px; background-color:White; border-width:2px; border-color:Black; border-style:solid; padding:20px;">

          确定要删除吗?

          <br /><br />

    <div style="text-align:center;">

     <asp:Button ID="Ok" runat="server" Text="OK" />

     <asp:Button ID="Cancel" runat="server" Text="Cancel" />

    </div>

</asp:Panel>

这就是弹出的模态窗口

.modalBackground {

background-color:Gray;

filter:alpha(opacity=70);

opacity:0.7;

}

 

 

10.ModalPopupExtender(弹出模态窗口控件)

 

在ConfirmButtonExtender(确定按钮控件)中,我们使用过该控件来弹出模态窗口(我们使用了ConfirmButtonExtender的 DisplayModalPopupID属性,这就意味着模态窗口里的确定按钮与取消按钮所触发的事件(上面粉红色)已经确定,这时不能添加OnOkScript与OnCancelScript再来给确认和取消按钮添加客户端事件了,但我们单独使用时是可以这样的)

 

<script type="text/javascript">

        var styleToSelect;

        function onOk() {

           // $get('Paragraph1').className = styleToSelect; 使用微软的js脚本库

           document.getElementById("Paragraph1").setAttribute("class",styleToSelect);

        }

</script>

 

 

           <p id="Paragraph1">

            The ModalPopup extender allows a page to display content to the user in a "modal"

            manner which prevents the user from interacting with the rest of the page. The modal

            content can be any hierarchy of controls and is displayed above a background that

            can have a custom style applied to it. </p><br />

 

<asp:LinkButton ID="LinkButton1" runat="server"  Text="点击这里来改变以上文本的风格"/>

          <ajax:ModalPopupExtender ID="ModalPopupExtender1" runat="server"     TargetControlID="LinkButton1"

            PopupControlID="Panel1" 

            BackgroundCssClass="modalBackground" 

            OkControlID="OkButton"

            OnOkScript="onOk()" 

            CancelControlID="CancelButton"

            DropShadow="true"

            PopupDragHandleControlID="Panel3">

    </ajax:ModalPopupExtender>

大部分属性我们之前见过,这里DropShadow是设置弹出的模态窗口是否有阴影,我们看到单独使用ModalPopupExtender时我们可以设置OnOkScript和OnCancelScript来设置单击确认和取消时触发客户端事件,而触发他们的控件ID由 OkControlID和CancelControlID设置。值得一提的是被 OkControlID和CancelControlID指定的控件无论是不是服务端控件都将不会触发服务端事件,也就是说只能执行OnOkScript和OnCancelScript指定的客户端事件。PopupDragHandleControlID指定可以被拖动的控件ID,一般位于 PopupControlID内部。

 

 <asp:Panel ID="Panel1" runat="server" Style="display:none" CssClass="modalPopup">

            <asp:Panel ID="Panel3" runat="server" Style="cursor: move;background-color:#DDDDDD;border:solid 1px Gray;color:Black">

                <div>

                    <p>Choose the paragraph style you would like:</p>

                </div>

            </asp:Panel>

                <div>

                    <p>

                        <input type="radio" name="Radio" id="RadioA" checked="checked"

                            onclick="styleToSelect = 'sampleStyleA';" />

                            可以在客户端事件里直接给客户端变量赋值,前提是该客户端变量是全局变量

                        <label for="RadioA" class="sampleStyleA"

                            style="padding: 3px;">Sample paragraph text</label>

                    </p>

                    <p>

                        <input type="radio" name="Radio" id="RadioB"

                            onclick="styleToSelect = 'sampleStyleB';" />

                        <label for="RadioB" class="sampleStyleB"

                            style="padding: 3px;">Sample paragraph text</label>

                    </p>

                    <p>

                        <input type="radio" name="Radio" id="RadioC"

                            onclick="styleToSelect = 'sampleStyleC';" />

                        <label for="RadioC" class="sampleStyleC"

                            style="padding: 3px;">Sample paragraph text</label>

                    </p>

                    <p>

                        <input type="radio" name="Radio" id="RadioD"

                            onclick="styleToSelect = 'sampleStyleD';" />

                        <label for="RadioD" class="sampleStyleD"

                            style="padding: 3px;">Sample paragraph text</label>

                    </p>

                    <p style="text-align: center;">

                        <asp:Button ID="OkButton" runat="server" Text="OK" />

                        <asp:Button ID="CancelButton" runat="server" Text="Cancel" />

                    </p>

                </div>

        </asp:Panel>

 

.sampleStyleA {
background-color:#FFF;
}

.sampleStyleB {
background-color:#FFF;
font-family:monospace;
font-size:10pt;
font-weight:bold;
}

.sampleStyleC {
background-color:#ddffdd;
font-family:sans-serif;
font-size:10pt;
font-style:italic;
}

.sampleStyleD {
background-color:Blue;
color:White;
font-family:Arial;
font-size:10pt;
}
.modalPopup {
background-color:#ffffdd;
border-width:3px;
border-style:solid;
border-color:Gray;
padding:3px;
width:250px;
}

上面说到的不能执行服务端事件会令人很不爽,解决方法很简单,我们可以直接在模态窗口里拖入服务端控件来触发服务器端事件
<script runat="server">
    protected void showModalPopupViaServer_Click(object sender, EventArgs e)
    {
        this.ahiddenControl.Text = "触发了服务端事件显示模态窗口";
        this.programmaticModalPopup.Show();
    }
    protected void hideModalPopupViaServer_Click(object sender, EventArgs e)
    {
        this.ahiddenControl.Text = "触发了服务端事件隐藏模态窗口";
        this.programmaticModalPopup.Hide(); 
    }
</script>
<asp:Button runat="server" ID="ahiddenControl"/>
  <asp:LinkButton ID="LinkButton2" runat="server" Text="弹出模态窗口时执行服务端事件" OnClick="showModalPopupViaServer_Click"/>
<ajax:ModalPopupExtender runat="server" ID="programmaticModalPopup"
            BehaviorID="programmaticModalPopupBehavior"
            TargetControlID="ahiddenControl"
            PopupControlID="programmaticPopup
            BackgroundCssClass="modalBackground"
            DropShadow="True"
            PopupDragHandleControlID="programmaticPopupDragHandle"
            RepositionMode="RepositionOnWindowScroll" >
        </ajax:ModalPopupExtender>

            <asp:Panel runat="server" CssClass="modalPopup" ID="programmaticPopup" style="display:none;width:350px;padding:10px">
            <asp:Panel runat="Server" ID="programmaticPopupDragHandle" Style="cursor: move;background-color:#DDDDDD;border:solid 1px Gray;color:Black;text-align:center;">
                ModalPopup shown and hidden in code
            </asp:Panel>
                You can now use this sample to see how to use ModalPopup with an invisible TargetControl.                 The ModalPopupExtender
                this popup is attached to has a hidden target control. The popup is hidden 
                <asp:LinkButton runat="server" ID="hideModalPopupViaServer" Text="on the server side in code behind" OnClick="hideModalPopupViaServer_Click" /> and 
                <a id="hideModalPopupViaClientButton" href="#">on the client in script</a>.
           <br />
        </asp:Panel>
TargetControlID指定的控件用于弹出模态窗口,其与OkControlID和CancelControlID指定的控件一样,也不能触发服务端事件,如果我们想在弹出模态窗口时执行服务端事件,我们可以把TargetControlID指定的控件的display设置为none,然后再将给某个控件的服务端事件内加上代码: ModalPopupExtender的ID.Show();  所以在服务器端控制模态窗口的现实与隐藏靠的就是ModalPopupExtender的Show()与Hide()。所以在服务器端处理完相应的事件(如确定取消)后别忘了后面加上Hide()使其隐藏。

有时我们也想在弹出模态窗口时执行客户端事件,但TargetControlID指定的控件只是起到弹出模态窗口的作用,并不能执行客户端事件。而OkControlID和CancelControlID只能指定的一个控件来执行客户端事件。我们也可以在客户端控件上指定客户端代码来控制模态窗口的显示与隐藏的同时执行我们想执行的客户端代码(同理在模态窗口里的客户端控件我们也可以为其任意指定客户端事件):
<a id="aaa" href="#" onclick="clientevent()">弹出模态窗口时执行客户端代码</a>
<script type="text/javascript">
    function clientevent()
    {
       $find("programmaticModalPopupBehavior").show();  这个show()不知是哪里的,好像也不是微软js库里的
       //关于$find()前面说过,一般在js里找Ajax拓展控件都是用$find  http://kendezhu.iteye.com/blog/773496
    }
</script>
补:
    微软js类库里的$addHandler()方法 http://msdn.microsoft.com/zh-cn/library/bb311019.aspx
    pageLoad()也是微软js类库里的函数,相当于windows.onload()
    
分享到:
评论

相关推荐

    aspAJAX扩展控件

    在标题提到的“aspAJAX扩展控件”中,提到了几个特定的控件,包括时间控件、Menu控件以及模态窗体。接下来,我们将深入探讨这些控件及其在 ASP.NET AJAX 中的应用。 1. **时间控件**: 时间控件通常指的是能够帮助...

    asp.net AJAX扩展控件详解PPT及word文档

    该压缩包文件"asp.net AJAX扩展控件详解PPT及word文档"包含了关于ASP.NET AJAX控件的详细讲解和应用实例,这对于学习和深入理解ASP.NET AJAX控件的开发者来说是非常宝贵的资源。这些控件是ASP.NET框架的一部分,旨在...

    Ajax扩展控件项目代码

    Ajax扩展控件 Ajax扩展控件 Ajax扩展控件 Ajax扩展控件 Ajax扩展控件 Ajax扩展控件 Ajax扩展控件 Ajax扩展控件 Ajax扩展控件 Ajax扩展控件 Ajax扩展控件 Ajax扩展控件 Ajax扩展控件

    vs2008Ajax扩展控件

    VS2008 包含了对AJAX的内置支持,但为了进一步增强开发者的工具集,还提供了AJAX扩展控件。 这些扩展控件是对VS2008内建AJAX框架的一个补充,提供了更多的控件选项,使得开发者可以更加便捷地构建具有动态效果和...

    VS2008 Ajax扩展控件程序集

    VS2008 Ajax扩展控件程序集是Visual Studio 2008中的一项重要功能,它极大地丰富了Web开发人员在构建富交互式Web应用程序时的工具箱。这个程序集,即AjaxControlToolkit.dll,包含了30多个Ajax(Asynchronous ...

    Ajax扩展控件dll

    Ajax扩展控件dll是Web开发中的一个重要组成部分,主要用于创建异步和交互性强的网页应用。在.NET Framework环境下,Ajax技术通常结合ASP.NET框架一起使用,为开发者提供了丰富的服务器端控件和客户端脚本库,使得...

    AspAjax的安装与使用(内含安装文件和详细安装教程)-AJAX扩展控件,非常实用

    这个文档对于初学者尤其重要,因为它会帮助理解AJAX扩展控件的工作原理,并避免常见的配置错误。 在实际开发中,AspAjax不仅提高了页面的响应速度,还减少了服务器的负载。由于大部分操作都在客户端完成,用户可以...

    ASP AJAX扩展控件使用讲解

    TextBoxWatermark控件 为TextBox添加水印功能,可以在如下两方面提高用户体验。 1 节省页面空间。 2 给用户充分提示 声明语法及常用属性: TargetControlID="myTextBox" WatermarkText="要在TextBox中显示的...

    vs2008中使用的ajax扩展控件dll

    **Visual Studio 2008中的Ajax扩展控件DLL** 在Web开发领域,Microsoft的Visual Studio 2008(VS2008)提供了一种强大的工具集,用于构建富交互性和高效的Web应用程序。Ajax(Asynchronous JavaScript and XML)...

    使用 Ajax 扩展控件 Accordion、Rating、Calendar 等

    以上就是关于使用Ajax扩展控件Accordion、Rating、Calendar实现动态菜单、等级评价功能和日历控件绑定TextBox的一些基础知识。在实际开发中,还需要根据具体需求进行调整和优化,确保功能的完整性和用户体验。

    ajax扩展控件

    Ajax扩展控件是ASP.NET框架下的一组特殊控件,用于简化在Web应用中实现Ajax功能的过程。 AjaxControlToolkit是微软提供的一个开源库,它包含了一系列预构建的、高度定制的Ajax控件和行为,使得开发者可以轻松地在...

    Ajax安装控件

    在这个场景中,我们关注的是如何在Asp.net中安装Ajax扩展控件,这将使我们的Web应用程序更加高效和响应。 首先,让我们理解什么是Ajax控件。Ajax控件是Asp.net提供的一系列预先构建的UI组件,它们允许开发者实现无...

    Ajax扩展包控件应用实例

    在Web开发中,Ajax扩展包通常包含了一系列预封装的控件和工具,帮助开发者更方便地实现Ajax功能。这些控件可能包括但不限于:下拉框、按钮、网格视图、表单验证、分页器等。它们通常提供丰富的API和配置选项,使得在...

    ASP.NET AJAX各种扩展控件集合网站和Toolkit下载

    标题中的"ASP.NET AJAX各种扩展控件集合网站和Toolkit下载"指的是一个资源集合,可能包括了一个展示ASP.NET AJAX Control Toolkit中多种控件实际应用的网站,以及该Toolkit的安装文件。这个集合可能涵盖了34种不同的...

    ASP中利用AJAX控件进行文本框扩展

    2. **HTML标记**:在ASP.NET页面中,创建一个TextBox控件,并为其添加一个AJAX扩展控件,如AjaxAutoCompleteExtender或TextBoxWatermarkExtender。设置相应的属性,如TargetControlID指向TextBox控件的ID,...

    vs2005中 ajax控件

    压缩包中的"AjaxControlToolkit.zip"包含了AjaxControlToolkit,这是一套开源的ASP.NET AJAX扩展控件集,提供了许多预建的、富客户端功能的控件,如Calendar、ModalPopup、TabContainer等。这些控件不仅简化了开发...

    VS2010AJAX拓展控件

    VS2010 AJAX拓展控件是针对Visual Studio 2010开发环境的一种增强工具,主要用于提升Web应用程序的用户体验,通过使用异步JavaScript和XML(AJAX)技术实现页面的部分刷新,无需整个页面的刷新就能获取服务器端的...

    Ajax 基础控件和扩展控件文档及例子

    Ajax 基础控件和扩展控件文档及例子 QQ:292258449

    AjaxControlToolkit扩展控件

    包含多种Ajax扩展控件,有的C#操作系统没有这种控件,使用这个可以更加轻松

Global site tag (gtag.js) - Google Analytics