xslt调用sharepoint参数

ContractedBlock.gif ExpandedBlockStart.gif Code
using System;
  
2 
  
3 using System.Runtime.InteropServices;
  
4 
  
5 using System.Web.UI;
  
6 
  
7 using System.Web.UI.WebControls;
  
8 
  
9 using System.Web.UI.WebControls.WebParts;
 
10 
 
11 using System.Xml.Serialization;using Microsoft.SharePoint;
 
12 
 
13 using Microsoft.SharePoint.WebControls;
 
14 
 
15 using Microsoft.SharePoint.WebPartPages;
 
16 
 
17 using System.Data;
 
18 
 
19 using System.Xml;
 
20 
 
21 using System.Xml.Xsl;
 
22 
 
23 using Microsoft.Office.Server;
 
24 
 
25 using Microsoft.Office.Server.Audience;
 
26 
 
27 using System.Collections;
 
28 
 
29 using System.Web;
 
30 
 
31 namespace TargetedLinks
 
32 
 
33 {
 
34 
 
35 [Guid("06255a6e-ca36-4daa-8860-147d80cfa688")]
 
36 
 
37 public class TargetedLinks : System.Web.UI.WebControls.WebParts.WebPart
 
38 
 
39 {
 
40 
 
41 #region List Name
 
42 
 
43 private string _strSiteUrl;
 
44 
 
45 [Personalizable(PersonalizationScope.User), WebBrowsable(true),
 
46 
 
47 WebDisplayName("List Name"), WebDescription("List Name Input")]
 
48 
 
49 public string SiteUrl
 
50 
 
51 {
 
52 
 
53 get { return _strSiteUrl; }
 
54 
 
55 set { _strSiteUrl = value; }
 
56 
 
57 }
 
58 
 
59 #endregion
 
60 
 
61 #region displayXML
 
62 
 
63 #region Private Variables
 
64 
 
65 bool displayXML = false;
 
66 
 
67 #endregion
 
68 
 
69 #region Properties
 
70 
 
71 /// <summary>
 72 
 
73 /// Whether to scan subfolders or not
 74 
 
75 /// </summary>
 76 
 
77 [WebBrowsable(true), Personalizable(true), WebDisplayName("Display XML source"), WebDescription(" Xml Source will appear in a a textarea")]
 
78 
 
79 public bool DisplayXML
 
80 
 
81 {
 
82 
 
83 get { return displayXML; }
 
84 
 
85 set { displayXML = value; }
 
86 
 
87 }
 
88 
 
89 #endregion
 
90 
 
91 #endregion
 
92 
 
93 #region link image
 
94 
 
95 private string _imgsrc="";
 
96 
 
97 [Personalizable(PersonalizationScope.User), WebBrowsable(true),
 
98 
 
99 WebDisplayName("Link image"), WebDescription("image src")]
100 
101 public string StrImageSrc
102 
103 {
104 
105 get { return _imgsrc; }
106 
107 set { _imgsrc = value; }
108 
109 }
110 
111 #endregion
112 
113 #region xslt
114 
115 private string _xsltpath;
116 
117 [Personalizable(PersonalizationScope.User), WebBrowsable(true),
118 
119 WebDisplayName("XSLT Path"), WebDescription("XSLT Path")]
120 
121 public string StrXSLT
122 
123 {
124 
125 get { return _xsltpath; }
126 
127 set { _xsltpath = value; }
128 
129 }
130 
131 #endregion
132 
133 public TargetedLinks()
134 
135 {
136 
137 }
138 
139 #region GetUserAudiencesNamesArray
140 
141 public static string[] GetUserAudiencesNamesArray()
142 
143 {
144 
145 ServerContext context = ServerContext.Current;
146 
147 SPWeb web = SPControl.GetContextWeb(HttpContext.Current);
148 
149 AudienceManager manaer = new AudienceManager(context);
150 
151 ArrayList arrList = manaer.GetUserAudienceIDs(HttpContext.Current.User.Identity.Name, true, web);
152 
153 string[] names = new string[arrList.Count];
154 
155 for (int i = 0; i < arrList.Count; i++)
156 
157 {
158 
159 names[i] = ((AudienceNameID)arrList[i]).AudienceName;
160 
161 }
162 
163 return names;
164 
165 }
166 
167 #endregion
168 
169 protected override void RenderContents(HtmlTextWriter writer)
170 
171 {
172 
173 if (!String.IsNullOrEmpty(SiteUrl))
174 
175 {
176 
177 SPSite site = new SPSite(SPContext.Current.Site.Url);
178 
179 SPList olist = site.RootWeb.Lists[SiteUrl];
180 
181 #region SPSiteDataQuery
182 
183 SPSiteDataQuery q = new SPSiteDataQuery();
184 
185 q.Lists = "<Lists><List ID=" + olist.ID.ToString() + "/></Lists>";
186 
187 #region Query
188 
189 string _strQuery = "";
190 
191 string _strFirst = "<Where>";
192 
193 string _queryorder = "";
194 
195 #region Get UserInfo
196 
197 //string account = this.Page.User.Identity.Name;
198 
199 //SPUser sUser = w.CurrentUser;
200 
201 for (int i = 0; i < GetUserAudiencesNamesArray().Length; i++)
202 
203 {
204 
205 _strFirst += "<Or>";
206 
207 if (i > 0)
208 
209 {
210 
211 _strQuery += "<Contains><FieldRef Name='Target_x0020_Audiences' /><Value Type='TargetTo'>" + GetUserAudiencesNamesArray()[i].ToString() + "</Value></Contains></Or>";
212 
213 }
214 
215 else
216 
217 {
218 
219 _strQuery += "<Contains><FieldRef Name='Target_x0020_Audiences' /><Value Type='TargetTo'>" + GetUserAudiencesNamesArray()[i].ToString() + "</Value></Contains>";
220 
221 }
222 
223 }
224 
225 _strQuery = _strFirst + _strQuery;
226 
227 _strQuery += "<IsNull><FieldRef Name='Target_x0020_Audiences' /></IsNull></Or>";
228 
229 _strQuery += "</Where><OrderBy><FieldRef Name='ID'  Ascending='False' /></OrderBy>";
230 
231 #endregion
232 
233 _strQuery += _queryorder;
234 
235 q.Query = _strQuery;
236 
237 #endregion
238 
239 q.Webs = "<Webs Scope='SiteCollection' />";
240 
241 q.ViewFields = "<FieldRef Name='URL' /><FieldRef Name='ID' /><FieldRef Name='Title' />";
242 
243 DataTable dt = null;
244 
245 SPWeb w = site.OpenWeb();
246 
247 dt = w.GetSiteData(q);
248 
249 DataSet ds = new DataSet("rows");
250 
251 ds.Tables.Add(dt);
252 
253 w = null;
254 
255 #region xml dom
256 
257 XmlDocument doc = new XmlDocument();
258 
259 doc.LoadXml(ds.GetXml());
260 
261 if (!String.IsNullOrEmpty(StrXSLT))
262 
263 {
264 
265 System.Xml.Xsl.XslCompiledTransform xslt = new System.Xml.Xsl.XslCompiledTransform();
266 
267 xslt.Load(Page.Server.MapPath(StrXSLT));
268 
269 XsltArgumentList arglist = new XsltArgumentList();
270 
271 arglist.AddParam("ImageSrc""", StrImageSrc);
272 
273 xslt.Transform(doc, arglist, writer);
274 
275 }
276 
277 else
278 
279 {
280 
281 writer.Write("please input the webpart property:XSLT Path");
282 
283 }
284 
285 #endregion
286 
287 #endregion
288 
289 #region output xml
290 
291 if (DisplayXML)
292 
293 {
294 
295 writer.Write(String.Format("<textarea style='height:100px;width:80%;text-align:center;'>{0}</textarea>", UtilityLibrary.XMLUtil.ConvertXMLToString(doc)));
296 
297 }
298 
299 #endregion
300 
301 }
302 
303 else
304 
305 {
306 
307 writer.Write("please input the webpart property:List Name");
308 
309 }
310 
311 }
312 
313 protected override void CreateChildControls()
314 
315 {
316 
317 base.CreateChildControls();
318 
319 // TODO: add custom rendering code here.
320 
321 // Label label = new Label();
322 
323 // label.Text = "Hello World";
324 
325 // this.Controls.Add(label);
326 
327 }
328 
329 }
330 
331 }

 

 

ContractedBlock.gif ExpandedBlockStart.gif Code
<?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl" > <xsl:output method="xml" indent="yes"/> <xsl:param name="ImageSrc" select="Blue" /> <xsl:template match="/"> <link rel="stylesheet" type="text/css" href="/wpresources/QuickLink_Sources/stylesheet.css"/> <ul id="ul_quicklink"> <xsl:for-each select="rows/Table1"> <li> <xsl:choose> <xsl:when test="string-length($ImageSrc)>0"> <xsl:attribute name="style"> list-style-image:url(<xsl:value-of select="$ImageSrc"/>); </xsl:attribute> </xsl:when> </xsl:choose> <xsl:choose> <xsl:when test="contains(URL,',')"> <xsl:element name="a"> <xsl:attribute name="href"> <xsl:value-of select="substring-before(URL,',')"/> </xsl:attribute> <xsl:attribute name="target"> <xsl:text>_blank</xsl:text> </xsl:attribute> <xsl:value-of select="substring-after(URL,',')"/> </xsl:element> </xsl:when> </xsl:choose> </li> </xsl:for-each> </ul> </xsl:template> </xsl:stylesheet>

转载于:https://www.cnblogs.com/geek007/archive/2009/01/15/1376643.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值