преобразовать код asp.net в проблему с кодом WebPart - PullRequest
0 голосов
/ 12 января 2010

Я использую 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>

спасибо заранее, George

Ответы [ 2 ]

2 голосов
/ 12 января 2010

Проверьте эту ссылку ...

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

0 голосов
/ 21 января 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>.

...