文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>创建支持 ASP.NET AJAX 的基本 Web 部件

创建支持 ASP.NET AJAX 的基本 Web 部件

时间:2010-09-01  来源:缘分星空

创建支持 ASP.NET AJAX 的基本 Web 部件 - 站长学院 未来的中国站长, 更加专注中国网络的发展 广告服务 | 最新更新 | 加入收藏 | 设为首页
  • 首页
  • 互联网软件
  • IDC产品
  • 站长交易
  • 项目外包
  • 商业信息
  • 招聘求职
  • 公司库
  • 资 讯
  • 下 载
  • 学 院
  • 工 具
  • 论 坛
热门关键字:CSS布局配色参考Dreamweaver8 apacheApacheIIS6AjaxWML
首页 | HOME 站长之家 站长入门 运营策划 搜索优化 网站盈利 网页设计 Html CSS/Xhtml Dhtml WAP Dreamweaver 设计原理 平面动画 Photoshop Firework Flash 网站开发 Asp .Net Php Jsp Mssql Access Oracle Mysql 服务器 Fressbsd LINUX Windows
视频教程 常用手册 常用广告代码 js特效代码
站长学院 >> 网站开发技术教程 >> asp.net教程  >> 创建支持 ASP.NET AJAX 的基本 Web 部件

创建支持 ASP.NET AJAX 的基本 Web 部件

2010-5-26 18:39:00查看学习心得

先决条件

  Windows SharePoint Services 3.0

  Visual Studio 2005

  步骤 1:创建 Web 部件项目

  若要创建支持 AJAX 的 Web 部件控件,可以首先在 Visual Studio 2005 中的类库中创建一个类库对象。

  在 Visual Studio 2005 中创建 ASP.NET Web 部件项目

  启动 Visual Studio 2005。

  在“文件” 菜单上,指向“新建” ,再单击“项目” 。

  在“项目类型”中的“Visual Basic”或“C#”下方,选择“Windows” 。

  在“模板” 窗格中,选择“类库” 。

  键入 Sample.SayHello 作为项目名称。

  步骤 2:重命名基类并添加必需的命名空间

  创建项目之后,会显示一个空白类文件。您可以更改默认的类名称“Class1” 以轻松标识新的 Web 部件。类库项目中仅包含少量命名空间。您需要添加两个必需的命名空间以及对其程序集的引用。还必须从 System.Web.UI.WebControls.WebParts.WebPart 派生基类。然后,您必须添加两个全局变量以更新用户界面 (UI)。

  添加命名空间引用和共享的用户界面组件

  通过以下方式重命名默认类:在“解决方案资源管理器”中选择“Class1.cs” ,单击鼠标右键,再单击“重命名” ,然后键入 SayHelloWebPart 作为文件名。

  在“项目” 菜单上,单击“添加引用” 。

  在“添加引用” 对话框中的“.NET” 选项卡上,选择“System.Web.Extensions” 并单击“确定” 
对 System.Web 命名空间重复步骤 2 和 3。

  在类文件的引用区域中,添加对 System.Web.UI.WebControls 的引用并为用户界面创建两个专用变量,如下面的代码所示:

Imports System 
Imports System.Text 
Imports System.Web.UI 
Imports System.Web.UI.WebControlsImports System.Web.UI.WebControls.WebParts 
Public Class SayHelloWebPart 
  Inherits WebPart 
  Private displayName As Label 
  Private inputName as TextBox 
End Class 

  现在您已经创建了 Web 部件的基本结构。

  步骤 3:重写 CreateChildControls 并创建按钮事件处理程序

  在配置新类以用作 Web 部件之后,您必须重写 CreateChildControls 方法以构建用户界面。还必须添加按钮处理程序以刷新显示数据。

  重写 CreateChildControls 并创建按钮事件处理程序

  在 SayHelloWebPart.cs 文件中,复制并粘贴以下代码以重写 CreateChildControls 方法

Protected Overrides Sub CreateChildControls 
  MyBase.CreateChildControls 
 
  'Fix for the UpdatePanel postback behaviour. 
  EnsurePanelFix 
 
  Dim sayHello As New LinkButton 
  Dim refreshName As New UpdatePanel 
  Dim scriptHandler As New ScriptManager 
  displayName = New Label 
  inputName = New TextBox 
 
  'Set up control properties. 
  Me.displayName.ID = "displayName" 
  Me.displayName.Text = "Hello!" 
  Me.inputName.ID = "inputName" 
  sayHello.ID = "sayHello" 
  sayHello.Text = "Say Hello" 
  scriptHandler.ID = "scriptHandler" 
  refreshName.ID = "refreshName" 
  refreshName.UpdateMode = UpdatePanelUpdateMode.Conditional 
  refreshName.ChildrenAsTriggers = True 
 
   'Add the EventHandler to the Button. 
  AddHandler sayHello.Click, _ 
   New EventHandler(AddressOf ClickHandler) 
 
  'Add the user interface (UI) controsl to the UpdatePanel 
 
  refreshName.ContentTemplateContainer.Controls.Add(Me.displayName) 
  refreshName.ContentTemplateContainer.Controls.Add(Me.inputName) 
  refreshName.ContentTemplateContainer.Controls.Add(sayHello) 
 
  'The ScriptManager must be added first. 
  Me.Controls.Add(scriptHandler) 
  Me.Controls.Add(refreshName) 
End Sub 
然后,在 SayHelloWebPart.cs 文件中,复制并粘贴以下代码:

Private Sub ClickHandler(ByVal sender As Object, _ 
       ByVal args As EventArgs) 
  Me.displayName.Text = "Hello, " & Me.inputName.Text & "!" 
End Sub 

  现在您已经创建了基本的用户界面和按钮处理事件。

  对于使用 JavaScript _doPostBack 函数提交更改的 ASP.NET 控件,可能会发生常规整页回发事件,即使 Web 部件位于 UpdatePanel 控件内也会如此。Windows SharePoint Services 3.0 和 ASP.NET AJAX 会对某些表单操作进行缓存,这会导致 SharePoint 和 ASP.NET AJAX 之间发生冲突。若要更改此行为,则必须向 Windows SharePoint Services 3.0 中运行的脚本添加代码。

  步骤 4:修改 Windows SharePoint Services 3.0 脚本以更改 doPostBack 行为

  修改脚本以确保正确的 doPostBack 行为

  在 SayHelloWebPart.cs 文件中,复制并粘贴以下代码:

Private Sub EnsurePanelFix 
  If Me.Page.Form IsNot Nothing Then 
   Dim fixupScript As New StringBuilder 
 
   With fixupScript 
    .AppendLine("_spBodyOnLoadFunctionNames.push" & _ 
    "(""_initFormActionAjax"");") 
    .AppendLine("function _initFormActionAjax") 
    .AppendLine("{") 
    .AppendLine("if (_spEscapedFormAction == " & _ 
    "document.forms[0].action)") 
    .AppendLine("{") 
    .AppendLine("document.forms[0]._initialAction = " & _ 
    document.forms[0].action;") 
    .AppendLine("}") 
    .AppendLine("}") 
    .AppendLine("var RestoreToOriginalFormActionCore = " & _ 
    RestoreToOriginalFormAction;") 
    .AppendLine("RestoreToOriginalFormAction = function") 
    .AppendLine("{") 
    .AppendLine("  if (_spOriginalFormAction != null)") 
    .AppendLine("  {") 
    .AppendLine("    RestoreToOriginalFormActionCore;") 
    .AppendLine("    document.forms[0]._initialAction = " & _ 
    "document.forms[0].action;") 
    .AppendLine("  }") 
    .AppendLine("}") 
   End With 
   ScriptManager.RegisterStartupScript(Me, _ 
    GetType(SayHelloWebPart), "UpdatePanelFixup", _ 
    fixupScript.ToString, True) 
  End If 
End Sub 


  现在您已经修改脚本以确保正确的回发处理。

  在将所有代码添加到 Web 部件对象之后,您可以构建示例 Web 部件并对其进行部署

本文作者:未知
页面收藏到: [收藏到QQ书签] [新浪ViVi] [Poco] [bbmao] [365KEY] [天极网摘] [我摘] 点击复制本页地址,传给QQ/MSN上的好友
上一篇 下一篇
更多»学习心得
笔名  匿名  
Email
最新教程
  • MVC中用XML实现breadcrumbs导航栏代码实例07-27
  • 了解ASP.NET的Postback处理全过程07-27
  • 浅析ASP.NET中两种调用存储过程的方法07-27
  • ASP.NET MVC TempData机制分析07-27
  • ASP.NET站点页面前端处理过程分析07-27
  • ASP.NET Web入门:配置数据库连接07-27
  • ASP.NET入门:如何创建数据访问层07-27
  • ASP.NET中给DAL添加定制编码07-27
  • ASP.NET MVC框架中实现自定义查询URL07-27
  • ASP.NET 2.0中数据的插入,更新和删除操作07-27
热门教程
  • vb.net入门——ListView 控件的使用01-26
  • WPF入门指南一:快速入门01-28
  • vb.net入门——TreeView 控件的使用01-26
  • vb.net入门——分组控件:TabControl的使用01-21
  • vb.net入门——ComboBox 控件的使用01-23
  • ASP.net(VB)编程入门进阶 Ⅲ01-28
  • WPF开发简介01-28
  • vb.net入门——ListBox控件的使用01-21
  • WPF使用流文档灵活地显示内容01-28
  • WPF和Silverlight到底有什么不同?01-28
我们提供的服务:
  • 关于我们
  • 联系我们
  • 站点公告
  • 内容投稿
  • 广告服务
  • 网站地图
  • 版权声明
  • 意见反馈
  • RSS

建议在1024*768分辨率下浏览本站,推荐您使用:http://站长.cn 或 http://www.cnzz.cn 访问本站 帮助您获得最佳体验
Copyright©2004 - 2008 CNZZ.CN Inc. All rights reserved.站长学院· 版权所有· 严禁拷贝
  • 苏ICP备05027637号
塞普森旗下网站 了解塞普森»
排行榜 更多 +
浴血混战官方下载

浴血混战官方下载

飞行射击 下载
检票员模拟器免广告下载

检票员模拟器免广告下载

模拟经营 下载
最终前哨最终版手机版下载

最终前哨最终版手机版下载

休闲益智 下载