自定义母板页的时候,免不了有时候会需要对网页右上角那个搜索框有点需求,比如那个下拉框太长我想让它宽度变小点
开始有这个需求的时候,我是用修改CSS来实现的,不过修改CSS是件挺麻烦的事,后来发现了使用DelegateControl可以很好的实现。
具体实现:
创建Feature,实现DelegateControl。
Feature.xml
1 <?xml version="1.0" encoding="utf-8" ?>
2 <Feature Title="xxx" Description="xxx Controls" Id="B52ABDB5-601E-4847-A8BA-6D3AF5067B5F" Scope="Farm" Hidden="TRUE" AlwaysForceInstall="TRUE" xmlns="http://schemas.microsoft.com/sharepoint/">
3 <ElementManifests>
4 <ElementManifest Location="Controls.xml" />
5 </ElementManifests>
6 </Feature>
2 <Feature Title="xxx" Description="xxx Controls" Id="B52ABDB5-601E-4847-A8BA-6D3AF5067B5F" Scope="Farm" Hidden="TRUE" AlwaysForceInstall="TRUE" xmlns="http://schemas.microsoft.com/sharepoint/">
3 <ElementManifests>
4 <ElementManifest Location="Controls.xml" />
5 </ElementManifests>
6 </Feature>
Controls.xml
1 <?xml version="1.0" encoding="utf-8" ?>
2 <Elements xmlns="http://schemas.microsoft.com/sharepoint/">
3 <Control Id="MySearchInputBox" Sequence="50" ControlClass="Microsoft.SharePoint.Portal.WebControls.SearchBoxEx" ControlAssembly="Microsoft.SharePoint.Portal, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c">
4 <Property Name="GoImageUrl">/_layouts/images/gosearch.gif</Property>
5 <Property Name="GoImageUrlRTL">/_layouts/images/goRTL.gif</Property>
6 <Property Name="GoImageActiveUrl">/_layouts/images/gosearch.gif</Property>
7 <Property Name="GoImageActiveUrlRTL">/_layouts/images/goRTL.gif</Property>
8 <Property Name="DropDownMode">ShowDD</Property>
9 <Property Name="DropDownWidth">100</Property>
10 <Property Name="TextBoxWidth">100</Property>
11 <Property Name="SearchResultPageURL">/Pages/SearchResult.aspx</Property>
12 <Property Name="ScopeDisplayGroupName">搜索下拉列表</Property>
13 <Property Name="FrameType">None</Property>
14 <Property Name="ShowAdvancedSearch">true</Property>
15 </Control>
16 </Elements>
2 <Elements xmlns="http://schemas.microsoft.com/sharepoint/">
3 <Control Id="MySearchInputBox" Sequence="50" ControlClass="Microsoft.SharePoint.Portal.WebControls.SearchBoxEx" ControlAssembly="Microsoft.SharePoint.Portal, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c">
4 <Property Name="GoImageUrl">/_layouts/images/gosearch.gif</Property>
5 <Property Name="GoImageUrlRTL">/_layouts/images/goRTL.gif</Property>
6 <Property Name="GoImageActiveUrl">/_layouts/images/gosearch.gif</Property>
7 <Property Name="GoImageActiveUrlRTL">/_layouts/images/goRTL.gif</Property>
8 <Property Name="DropDownMode">ShowDD</Property>
9 <Property Name="DropDownWidth">100</Property>
10 <Property Name="TextBoxWidth">100</Property>
11 <Property Name="SearchResultPageURL">/Pages/SearchResult.aspx</Property>
12 <Property Name="ScopeDisplayGroupName">搜索下拉列表</Property>
13 <Property Name="FrameType">None</Property>
14 <Property Name="ShowAdvancedSearch">true</Property>
15 </Control>
16 </Elements>
MasterPage
<SharePoint:DelegateControl ControlId="MySearchInputBox" runat="server" />,
可以看出来,下拉框控件有很多的属性实现相应的功能,这些属性与搜索框webpart对应的属性是一样的
这样就可以很好的定制母板页中的搜索框了。