返回首页
当前位置: 主页 > 互联网技术 > 网络安全 >

ASP.NET-Ajax控件

时间:2020-04-21 17:15来源:电脑教程学习网 www.etwiki.cn 编辑:小山哥

AJAX代表异步JavaScript和XML。这是一种跨平台技术,可加快响应时间。AJAX服务器控件将脚本添加到由浏览器执行和处理的页面。

但是,像其他ASP.NET服务器控件一样,这些AJAX服务器控件也可以具有与它们相关联的方法和事件处理程序,这些方法和事件处理程序在服务器端进行处理。

Visual Studio IDE中的控件工具箱包含一组称为“ AJAX扩展”的控件

AJAX扩展

ScriptManager控件

ScriptManager控件是最重要的控件,必须存在于页面上,其他控件才能正常工作。

它具有基本语法:

<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>

如果您创建“启用Ajax的站点”或从“添加项目”对话框中添加“ AJAX Web表单”,则该Web表单会自动包含脚本管理器控件。ScriptManager控件负责所有服务器端控件的客户端脚本。

UpdatePanel控件

UpdatePanel控件是一个容器控件,它是从Control类派生的。它充当其中子控件的容器,并且没有自己的接口。当内部控件触发回发时,UpdatePanel进行干预以异步启动该发帖并仅更新页面的该部分。

例如,如果按钮控件位于更新面板内部,并且单击了它,则仅会影响更新面板中的控件,而不会影响页面其他部分上的控件。这称为部分回发或异步回发。

在您的应用程序中添加一个AJAX Web表单。默认情况下,它包含脚本管理器控件。插入一个更新面板。在更新面板控件中放置一个按钮控件和一个标签控件。将另一组按钮和标签放在面板外部。

设计视图如下所示:

脚本管理器

源文件如下:

<form id="form1" runat="server">
   <div>
      <asp:ScriptManager ID="ScriptManager1" runat="server" />
   </div>
   
   <asp:UpdatePanel ID="UpdatePanel1" runat="server">
      <ContentTemplate>
         <asp:Button ID="btnpartial" runat="server" onclick="btnpartial_Click" Text="Partial PostBack"/>
         <br />
         <br />
         <asp:Label ID="lblpartial" runat="server"></asp:Label>
      </ContentTemplate>
   </asp:UpdatePanel>
   
   <p> </p>
   <p>Outside the Update Panel</p>
   <p>
      <asp:Button ID="btntotal" runat="server" onclick="btntotal_Click" Text="Total PostBack" />
   </p>
   
   <asp:Label ID="lbltotal" runat="server"></asp:Label>
</form>

这两个按钮控件的事件处理程序具有相同的代码:

string time = DateTime.Now.ToLongTimeString();
lblpartial.Text = "Showing time from panel" + time;
lbltotal.Text = "Showing time from outside" + time;

观察到在执行页面时,如果单击了全部回发按钮,则将更新两个标签中的时间,但是如果单击了部分回发按钮,则将仅更新更新面板中的标签。

更新面板

一个页面可以包含多个更新面板,每个面板包含其他控件(例如网格)并显示数据的不同部分。

当发生全部回发时,默认情况下将更新更新面板的内容。可以通过更改控件的UpdateMode属性来更改此默认模式。让我们看一下更新面板的其他属性。

UpdatePanel控件的属性

下表显示了更新面板控件的属性:

物产 描述
儿童触发 此属性指示回发是否来自子控件,这将导致更新面板刷新。
内容模板 它是内容模板,用于定义呈现时在更新面板中显示的内容。
ContentTemplateContainer 检索动态创建的模板容器对象,并用于以编程方式添加子控件。
IsInPartialRendering 指示是否在部分回发中更新面板。
渲染模式 显示渲染模式。可用的模式为阻止和串联。
更新模式 通过确定一些条件来获取或设置渲染模式。
扳机 定义收集触发对象,每个对象对应于导致面板自动刷新的事件。

UpdatePanel控件的方法

下表显示了更新面板控件的方法:

方法 描述
CreateContentTemplateContainer 创建一个Control对象,该对象充当定义UpdatePanel控件内容的子控件的容器。
CreateControlCollection 返回UpdatePanel控件中包含的所有控件的集合。
初始化 如果启用了部分页面呈现,则初始化UpdatePanel控件触发器集合。
更新资料 导致更新UpdatePanel控件的内容。

更新面板的行为取决于UpdateMode属性和ChildrenAsTriggers属性的值。

更新模式 儿童触发 影响
总是 非法参数。
总是 真正 如果整个页面刷新或该页面上的子控件回发,则UpdatePanel刷新。
有条件的 如果刷新整个页面或外部的触发控件启动刷新,则UpdatePanel刷新。
有条件的 真正 如果整个页面刷新,页面上的子控件回发或外部的触发控件启动刷新,则UpdatePanel刷新。

UpdateProgress控件

当更新一个或多个更新面板控件时,UpdateProgress控件在浏览器上提供某种反馈。例如,当用户登录或在执行一些面向数据库的作业时等待服务器响应时。

它提供视觉确认,例如“正在加载页面...”,表明工作正在进行中。

UpdateProgress控件的语法为:

<asp:UpdateProgress ID="UpdateProgress1" runat="server" DynamicLayout="true" AssociatedUpdatePanelID="UpdatePanel1" >

   <ProgressTemplate>
      Loading...
   </ProgressTemplate>
   
</asp:UpdateProgress>

上面的代码片段显示了ProgressTemplate标记内的一条简单消息。但是,它可以是图像或其他相关控件。除非使用AssociatedUpdatePanelID属性将其分配给单个更新面板,否则将为每个异步回发显示UpdateProgress控件。

UpdateProgress控件的属性

下表显示了更新进度控件的属性:

物产 描述
AssociatedUpdatePanelID 获取并设置与此控件关联的更新面板的ID。
属性 获取或设置UpdateProgress控件的级联样式表(CSS)属性。
显示后 获取并设置显示进度模板的时间(以毫秒为单位)。默认值为500。
动态布局 指示进度模板是否动态呈现。
进度模板 指示在异步回发期间显示的模板,该模板花费的时间比DisplayAfter时间长。

UpdateProgress控件的方法

下表显示了更新进度控制的方法:

方法 描述
GetScriptDescriptors 返回UpdateProgress控件的客户端功能所需的组件,行为和客户端控件的列表。
GetScript参考 返回UpdateProgress控件的客户端脚本库依赖项列表。

计时器控制

计时器控件用于自动启动回发。这可以通过两种方式完成:

(1)设置UpdatePanel控件的Triggers属性:

<Triggers> 
   <asp:AsyncPostBackTrigger ControlID="btnpanel2" EventName="Click" />
</Triggers>

(2)将计时器控件直接放置在UpdatePanel中以充当子控件触发器。一个计时器可以触发多个UpdatePanel。

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Always">

   <ContentTemplate>
      <asp:Timer ID="Timer1" runat="server" Interval="1000">
         </asp:Timer>
         
      <asp:Label ID="Label1" runat="server" Height="101px" style="width:304px" >
         </asp:Label>
   </ContentTemplate>
   
</asp:UpdatePanel>
 上一页  打印页面

------分隔线----------------------------
标签(Tag):
------分隔线----------------------------
推荐内容
  • ASP.NET-数据源

    数据源控件与数据绑定控件进行交互,并隐藏复杂的数据绑定过程。 这些工具可将数据提...

  • ASP.NET-多视图

    MultiView和View控件使您可以将页面的内容分为不同的组,一次仅显示一个组。 每个View...

  • ASP.NET-广告轮播

    AdRotator控件从列表中随机选择横幅图形,该列表在外部XML计划文件中指定。 该外部XML...

  • ASP.NET-文件上传

    ASP.NET具有两个控件,允许用户将文件上传到Web服务器。 服务器收到发布的文件数据后...

  • ASP.NET-验证器

    ASP.NET验证控件验证用户输入数据,以确保不会存储无用,未经身份验证或矛盾的数据。 ...

  • ASP.NET-指令

    ASP.NET指令是用于指定可选设置的指令,例如注册自定义控件和页面语言。 这些设置描述...

猜你感兴趣