zoukankan      html  css  js  c++  java
  • SharePoint 2010开发实例精选——“每日一句”WebPart

     本例将在SharePoint 2010站点上构建一个每日一句Web部件。如果你的电脑上还没有装SharePoint 2010环境,可以先从配置 SharePoint 2010开发环境开始做起。为了能够开发该webpart,你除了需要SharePoint 2010外,还需要VisualStudio 2010。

    下图是最终完成时的效果。它会每天随机从列表里获取数据。 

    步骤

    新建一个visual web part,命名为TOTD。

    添加你希望将webpart部署到的站点的URL 。

    点击完成并删除默认创建的webpart。然后新加一个visual web part,如下图所示: 

    在设计界面上放置一个Image Box,两个lable,然后根据需要调整表格的布局。 

     HTML代码

    <table style=" 409px">
        
    <tr>
            
    <td rowspan="2" width="100px">
                
    <asp:Image ID="ImgAuthor" runat="server" Width="100px" Height="100px" />
            
    </td>
            
    <td style=" height:16px" valign="top">
                
    <asp:Label ID="lblTOTD" runat="server" Font-Italic="True" Font-Names="Calibri" 
                    Font-Size
    ="12pt" style="z-index: 1; left: 120px; top: 29px;  376px" 
                    ForeColor
    ="#003399"></asp:Label>
            
    </td>
        
    </tr>
        
    <tr>
            
    <td align="right" valign="top">
                
    <asp:Label ID="lblAuthor" runat="server"  Font-Names="Calibri" Font-Size="9pt" 
                    style
    ="z-index: 1; left: 239px; top: 97px; text-align:right; height: 13px;  252px"></asp:Label>
            
    </td>
        
    </tr>
    </table>

    控件命名为,ImageBox:ImgAuthor,Lable:lblTOTD,lblAuthor。现在你得到类似如下的设计界面。 

     

    OK。现在你已经完成了部件的设计工作,开始编写后台代码。

    C#代码
    using System;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using Microsoft.SharePoint;
    using Microsoft.SharePoint.Utilities;

    namespace TOTD.TOTD_Web_Part
    {
        
    public partial class TOTD_Web_PartUserControl : UserControl
        {
            
    protected void Page_Load(object sender, EventArgs e)
            {
                SPWeb ospweb 
    = SPContext.Current.Web;
                SPList oList 
    = ospweb.Lists["QOTD"];
                SPListItemCollection collItem 
    = oList.GetItems("Thought""AuthorImage""AuthorName");

                Random random 
    = new Random();
                
    int RndItem = random.Next(1, collItem.Count + 1);
                
    int LastDay = 0;
                
    int TOTD = 0;
                
    int CurrentDay = DateTime.Now.DayOfYear;
                
    try
                {
                    LastDay 
    = int.Parse(Application["LastDay"].ToString());
                    TOTD 
    = int.Parse(Application["TOTD"].ToString());

                    
    if (LastDay != CurrentDay)
                    {
                        Application[
    "LastDay"= CurrentDay;
                        Application[
    "TOTD"= RndItem;
                        SPListItem oItem 
    = collItem[RndItem - 1];
                        
    this.ImgAuthor.ImageUrl = SPEncode.HtmlEncode(oItem["AuthorImage"].ToString().TrimEnd('?''.'','' '));
                        
    this.lblTOTD.Text = oItem["Thought"].ToString();
                        
    this.lblAuthor.Text = SPEncode.HtmlEncode(oItem["AuthorName"].ToString());
                    }
                    
    else
                    {
                        SPListItem oItem 
    = collItem[TOTD - 1];
                        
    this.ImgAuthor.ImageUrl = SPEncode.HtmlEncode(oItem["AuthorImage"].ToString().TrimEnd('?''.'','' '));
                        
    this.lblTOTD.Text = oItem["Thought"].ToString();
                        
    this.lblAuthor.Text = SPEncode.HtmlEncode(oItem["AuthorName"].ToString());
                    }
                }
                
    catch
                {
                    Application[
    "LastDay"= CurrentDay;
                    Application[
    "TOTD"= RndItem;
                    SPListItem oItem 
    = collItem[RndItem - 1];

                    
    this.ImgAuthor.ImageUrl = SPEncode.HtmlEncode(oItem["AuthorImage"].ToString().TrimEnd('?''.'','' '));
                    
    this.lblTOTD.Text = oItem["Thought"].ToString();
                    
    this.lblAuthor.Text = SPEncode.HtmlEncode(oItem["AuthorName"].ToString());
                }
            }
        }
    }

    现在,你完成了整个webpart的开发。让我们来把webpart部署到SharePoint 2010服务器。

    在部署前,你需要先在站点里创建一个图片库和一个自定义列表。 创建一个名为QOTD的自定义列表,并添加下列的栏:

    1、类型->图片或超链接 ;名称->AuthorImage ;格式化URL为->图片

    2、 类型->单行文本 ;名称->AuthorName

    3、类型->单行文本 ;名称->Thought

    然后,将默认的标题字段设置为不必需填写: 

    转到列表视图,修改视图使其只显示我们需要的三个字段: 

    接下来创建图片库,以便存放作者的相片。

    创建一个名为QOTDImage的图片库

    创建一个单行文本字段,命名为Author。重命名标题字段为"Name"。最终,你得到类似如下的图片库: 

    现在,你可以尽可能多的往QOTD列表填数据了。在AuthorImage一栏链接到图片库中图片的地址。

    这里为“http://ca5-sd-c-022:8080/sites/behive/QOTDImage/Einstine.bmp”。 

    准备工作完成。

    编译该项目并点击部署。然后你就可以再你的网站上使用你的webpart了。

    网站操作->编辑页面->插入(位于编辑功能区)->Web部件->类别->Custom,这样你就可以找到名为"TOTD_Web_Part"的webpart了。快快添加吧!

    参考资料

    Thought of the day Web part

  • 相关阅读:
    ThinkPHP框架知识(比较全的知识)
    利用smarty模板(登录、有关信息操作等功能)
    从零开始学习Node.js例子七 发送HTTP客户端请求并显示响应结果
    从零开始学习Node.js例子六 EventEmitter发送和接收事件
    从零开始学习Node.js例子五 服务器监听
    从零开始学习Node.js例子四 多页面实现数学运算 续二(client端和server端)
    从零开始学习Node.js例子四 多页面实现数学运算 续一(使用connect和express框架)
    从零开始学习Node.js例子四 多页面实现数学运算
    从零开始学习Node.js例子三 图片上传和显示
    从零开始学习Node.js例子二 文本提交与显示
  • 原文地址:https://www.cnblogs.com/Sunmoonfire/p/1763080.html
Copyright © 2011-2022 走看看