преобразовать код asp.net в код WebPart

Я использую SharePoint Server 2007 Enterprise с Windows Server 2008 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>

заранее спасибо, Джордж


person George2    schedule 12.01.2010    source источник


Ответы (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

Если вам нужна помощь, скажите, что я могу предоставить вам образец веб-части.


Чтобы включить файлы 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.

person Guilherme Ferreira    schedule 12.01.2010
comment
Моя путаница заключается в том, как использовать API-интерфейс сценария регистрации в моем конкретном случае для регистрации файлов js и css? Любые идеи? - person George2; 13.01.2010

Для 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);

Я забываю, есть ли другие способы обработки пользовательского javascript, кроме ClientScriptManager или Page.Header.Controls.Add (). Существует класс CustomJSUrl, но он не Похоже, что он работает не так, как CssLink.

Кроме того, я считаю, что ваш скрипт форматирования $(function() { $("#tabs").tabs() }) должен быть привязан к событию page.load, а не к блоку <head>.

person Ryan    schedule 21.01.2010