我在Windows Server 2008 Enterprise中使用SharePoint Server 2007 Enterprise。我正在使用VSTS 2008 + C#+ .Net 3.5 + ASP.Net进行开发。我有以下代码在ASP.Net(aspx)中正常工作,我想在WebPart中实现相同的功能,并部署到SharePoint发布门户网站的页面。
任何想法如何实施?我的主要困惑是如何处理以下代码头部的代码?任何参考代码或文件?
这是我正在使用的aspx代码,
<!doctype html>
<html lang="en">
<head>
<title>Test</title>
<link type="text/css" href="tabcontrol/themes/base/ui.all.css" rel="stylesheet" />
<script type="text/javascript" src="tabcontrol/jquery-1.3.2.js"></script>
<script type="text/javascript">
$(function() {
$("#tabs").tabs();
});
</script>
</head>
<body>
<div class="demo">
<div id="tabs">
<ul>
<li><a href="#tabs-1">tab1</a></li>
<li><a href="#tabs-2">tab2</a></li>
</ul>
<div id="tabs-1">
<p>tab1 info</p>
</div>
<div id="tabs-2">
<p>tab2 info</p>
</div>
</div>
</div>
</body>
</html>
提前谢谢,
乔治
答案 0 :(得分:2)
检查此链接...
http://dotnet.org.za/zlatan/archive/2007/10/12/developing-ajax-web-parts-in-sharepoint-2007.aspx
http://www.bewise.fr/article/ptc/57/WSS-V3-Use-ASP-NET-AJAX-Framework-with-WSS-30.aspx
如果您需要帮助,请告诉我我可以为您提供WebPart示例。
要包含css或js文件,您可以执行以下操作...
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
ClientScriptManager cs = Page.ClientScript;
string includeTemplate = "<link rel='stylesheet' text='text/css' href='{0}' />";
string includeLocation = Page.ClientScript.GetWebResourceUrl(this.GetType(), "App_Themes.MyButtons.css");
LiteralControl include = new LiteralControl(String.Format(includeTemplate, includeLocation));
Page.Header.Controls.Add(include);
includeTemplate = "<link rel='stylesheet' text='text/css' href='{0}' />";
includeLocation = Page.ClientScript.GetWebResourceUrl(this.GetType(), "App_Themes.MyMainModalDialog.css");
include = new LiteralControl(String.Format(includeTemplate, includeLocation));
Page.Header.Controls.Add(include);
}
在此示例中,我动态地包含MyMainModalDialog.css和MyButtons.css
答案 1 :(得分:0)
对于CSS,您可以使用CssLink和CssRegistration:
// Custom CSS (fix the URL as necessary)
Microsoft.SharePoint.WebControls.CssLink cssLink =
new Microsoft.SharePoint.WebControls.CssLink();
cssLink.DefaultUrl = "/tabcontrol/themes/base/ui.all.css";
this.Page.Header.Controls.Add(cssLink);
我忘了除了ClientScriptManager或Page.Header.Controls.Add()之外还有其他方法来处理自定义javascript。有一个CustomJSUrl类,但它似乎与CssLink的工作方式不同。
另外,我认为你的格式化脚本$(function() { $("#tabs").tabs() })
应该挂钩到page.load事件而不是<head>
块。