DelegateControl
来源:互联网 发布:图论十大算法 编辑:程序博客网 时间:2024/05/17 04:24
对开发者来说,使用包装器包装用户控件开发很方便。在C:/Program Files/Common Files/Microsoft Shared/web server extensions/12/TEMPLATE/CONTROLTEMPLATES这个目录下,发现有很多系统用户控件,如欢迎的用户控件、网站操作的用户控件,MOSS是如何调用这些用户控件的呢?答案就是DelegateControl这个服务端控件,该控件从SharePoint.WebControls下继承。
使用DelegateControl控件包装用户控件需要以下几个步骤。
7.6.2.1 创建用户控件
创建一个简单的用户控件。打开Web项目工程WebIT,新建一个用户控件,命名为SearchBox.ascx。
代码如下所示。
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="SearchBox.ascx.cs" Inherits="WebIT.DelegateControl.SearchBox" %>
<input id="txtkey" name="txtkey" type="text" />
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text= "Button" />
<asp:Label ID="Label1" runat="server" Width="338px"></asp:Label>
后台代码如下所示。
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
using Microsoft.SharePoint.Utilities;
namespace WebIT.DelegateControl
{
public partial class SearchBox : System.Web.UI.UserControl
{
protected void Button1_Click(object sender, EventArgs e)
{
if (Request["txtkey"] != null)
{
this.Label1.Text = Request["txtkey"].ToString();
}
}
}
}
7.6.2.2 创建feature
feature.xml的内容如下所示。
<?xml version="1.0" encoding="utf-8"?>
<Feature
Id="AA929AFF-4602-4d7f-A501-B80AC9A4BB32"
Title="DelegateControl处理用户控件"
Description="MOSS处理用户控件的解决方案"
Scope="Site"
xmlns="http://schemas.microsoft.com/sharepoint/">
<ElementManifests>
<ElementManifest Location="SearchBox.xml" />
</ElementManifests>
</Feature>
SearchBox.xml的内容如下所示。
<?xml version="1.0" encoding="utf-8" ?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Control
Id="SearchBox"
Sequence="50"
ControlSrc="~/_CONTROLTEMPLATES/SearchBox.ascx">
</Control>
</Elements>
请注意SearchBox.xml文件中ControlSrc的写法。
7.6.2.3 部署
编写批处理文件installfeature.bat来部署安装。
echo Copying the feature...
echo.
rd /s /q "%CommonProgramFiles%/Microsoft Shared/web server extensions/12/ TEMPLATE/FEATURES/SearchBox"
mkdir "%CommonProgramFiles%/Microsoft Shared/web server extensions/12/ TEMPLATE/FEATURES/SearchBox"
copy /Y feature.xml "%CommonProgramFiles%/Microsoft Shared/web server extensions/12/TEMPLATE/FEATURES/SearchBox/"
copy /Y SearchBox.xml "%CommonProgramFiles%/Microsoft Shared/web server extensions/12/TEMPLATE/FEATURES/SearchBox/"
copy /Y SearchBox.ascx "%CommonProgramFiles%/Microsoft Shared/web server extensions/12/TEMPLATE/CONTROLTEMPLATES/"
echo.
echo Activating the feature...
echo.
pushd %programfiles%/common files/microsoft shared/web server extensions/12/ bin
stsadm -o deactivatefeature -filename SearchBox/feature.xml -url http:// yang:9000
stsadm -o uninstallfeature -filename SearchBox/feature.xml
stsadm -o installfeature -filename SearchBox/feature.xml -force
stsadm -o activatefeature -filename SearchBox/feature.xml -url http:// yang:9000
iisreset
pause
这个批处理文件中需要注意的一点是把SearchBox.ascx用户控件复制到了
"%CommonProgramFiles%/Microsoft Shared/web server extensions/12/TEMPLATE/ CONTROLTEMPLATES/"这个目录下。
执行批处理文件后。单击网站操作→网站设置→修改所有网站设置,单击网站集功能,打开如图7-35所示的界面。
7.6.2.4 编写测试页面
打开SharePoint Designer 2007,在9000的站点下新建一个aspx文件,命名为SearchBox.aspx,保存在Pages目录下。打开该页面,在代码模式下,把以下代码放在一个表格的一个单元格td中。
<SharePointWebControls:DelegateControl ControlId="SearchBox" runat= "server">
</SharePointWebControls:DelegateControl>
图7-35 网站集功能界面
注意:ControlId="SearchBox"这个属性设定需要和SearchBox.xml文件中的ControlId相一致。
之后,把该页面签入发布。在浏览器中输入http://yang:9000/Pages/SearchBox.aspx,在文本框中输入任意内容,单击按钮,在页面会输出内容,如图7-36所示。
图7-36 最终页面效果
- DelegateControl
- DelegateControl:SharePoint Server 2007内置的一个“用户控件包装器”
- DelegateControl:SharePoint Server 2007内置的一个用户控件包装器
- DelegateControl:SharePoint Server 2007内置的一个“用户控件包装器”
- 数据同步
- [jQuery教程]jquery基础教程五(渐变效果函数之fadeIn,fadeOut和fadeTo)
- 读书CSDN读书频道 / 书名:《Ajax实战》
- [jQuery教程]jquery基础教程六(滑动效果函数之slideDown,slideToggle和slideUp)
- OpenCV模块
- DelegateControl
- [jQuery教程]jquery基础教程七选择器(selectors的xpath语法应用)
- Sharepoint2007权限总结
- [jQuery教程]jquery基础教程八load方法及小技巧
- 英语学习者的十句经典名言
- 排序性能
- 利用飞线手工布局和布线
- 评估LCD monitor 的技术指标
- ARC GIS9.0的破解安装步骤