• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當(dāng)前位置:雨林木風(fēng)下載站 > 辦公軟件教程 > 詳細(xì)頁(yè)面

        SharePoint 完成類似人人網(wǎng)站內(nèi)信技巧實(shí)施

        SharePoint 完成類似人人網(wǎng)站內(nèi)信技巧實(shí)施

        更新時(shí)間:2024-02-08 文章作者:未知 信息來(lái)源:網(wǎng)絡(luò) 閱讀次數(shù):

        SharePoint發(fā)行版本有SharePoint2003、SharePoint2007、Sharepoint 2010、SharePoint2013和SharePoint2016。SharePoint提供了功能強(qiáng)大的團(tuán)隊(duì)協(xié)作環(huán)境,使得組織能夠在整個(gè)組織內(nèi)部實(shí)現(xiàn)整合、組織、查找和提供 SharePoint站點(diǎn)。

        用SharePoint代碼加實(shí)施的方式,完成類似人人網(wǎng)站內(nèi)信功能,當(dāng)然,實(shí)現(xiàn)的比較簡(jiǎn)單,樣式也比較難看,只為給大家一個(gè)實(shí)施的簡(jiǎn)單思路,如有謬誤,還請(qǐng)見諒。當(dāng)然,還有就是截圖比較長(zhǎng),當(dāng)然為了讓大家清晰了解每一步,并不是博主啰嗦,事先聲明。

        一、展示效果一,李四發(fā)送站內(nèi)信給張三:

        1、李四發(fā)站內(nèi)信,給張三,如下圖所示:

        clip_image001

        2、發(fā)送完畢后,查看李四的收件箱,為空,如下圖:

        clip_image002

        3、發(fā)送完畢后,查看李四的發(fā)件箱,有李四給張三發(fā)送的站內(nèi)信,如下圖:

        clip_image003

        4、切換賬號(hào),張三登陸,查看右上角登錄信息,張三;右上角有一天未讀信息提示,是個(gè)WebPart,把鼠標(biāo)放在上面,看到狀態(tài)欄有鏈接,是查看站內(nèi)信的鏈接,點(diǎn)擊進(jìn)入;

        clip_image004

        5、進(jìn)入收件箱,發(fā)現(xiàn)張三的收件箱里,有李四發(fā)給張三的站內(nèi)信,如下圖:

        clip_image005

        6、進(jìn)入發(fā)件箱,發(fā)現(xiàn)沒有任何站內(nèi)信,如下圖:

        clip_image006

        7、切換回來(lái)收件箱,然后點(diǎn)擊那條收到的站內(nèi)信,如下圖:

        clip_image005

        8、點(diǎn)擊查看站內(nèi)信,站內(nèi)信的標(biāo)題、內(nèi)容、接受者、發(fā)送者、是否閱讀,樣式有點(diǎn)難看,其實(shí)可以稍微美化下,時(shí)間倉(cāng)促,也沒做,湊合見人吧,如下圖:

        clip_image008

        9、查看以后,返回http://mytravels/SitePages/MyMessage.aspx頁(yè)面,發(fā)現(xiàn)閱讀過(guò)的那條信息,上面的加粗沒有了,如下圖(對(duì)比7,可能看不很清楚,可以點(diǎn)擊大圖):

        clip_image007[1]

        二、展示效果二,張三發(fā)送站內(nèi)信給聯(lián)系人組

        1、發(fā)送站內(nèi)信,Receiver接受者輸入聯(lián)系人組“聯(lián)系人”,如下圖;

        clip_image009

        2、特別說(shuō)明,聯(lián)系人組,有張三和李四兩個(gè)人,如下圖:

        clip_image010

        3、站內(nèi)信發(fā)送完畢后,張三的站內(nèi)信收件箱有一條新站內(nèi)信,因?yàn)樗苍诼?lián)系人組,如下圖:

        clip_image011

        4、張三查看自己的發(fā)件箱,只有剛剛發(fā)送給聯(lián)系人組的站內(nèi)信,如下圖:

        clip_image012

        5、切換李四賬號(hào),進(jìn)入首頁(yè),發(fā)現(xiàn)提示有一條站內(nèi)信,如下圖:

        clip_image013

        6、進(jìn)入收件箱,看到張三發(fā)給聯(lián)系人組的站內(nèi)信,如下圖;至此,張三發(fā)給聯(lián)系人組的站內(nèi)信,張三、李四都收到了;

        clip_image014

        三、結(jié)構(gòu)簡(jiǎn)單介紹

        有兩張列表,一張是發(fā)件箱,一張是收件箱如下圖介紹:

        1、 發(fā)件箱列表,如下圖所示,包括字段標(biāo)題、內(nèi)容、收件人(用戶/用戶組)

        clip_image015

        2、收件箱列表,通過(guò)Sender字段(類型:用戶/用戶組),確定這條站內(nèi)信是誰(shuí)的

        clip_image016

        原理簡(jiǎn)介:

          發(fā)件箱里每加入一條信息,通過(guò)一個(gè)事件觸發(fā)器來(lái)發(fā)送站內(nèi)信,如果是用戶,就往收件箱里add一條Item,sender字段就是收件人;如果是用戶組,就把用戶組里的人員讀出來(lái),往收件箱里為每個(gè)用戶add一條Item。

          發(fā)件箱創(chuàng)建一個(gè)視圖,就是創(chuàng)建者=本人,也就是所有登陸用戶發(fā)送的站內(nèi)信,都顯示出來(lái)了;收件箱通過(guò)一個(gè)WebPart進(jìn)行展示,把所有Sender字段是登陸用戶的,全部顯示出來(lái),如果IsRead是否閱讀字段為否,也就是沒有閱讀的,加粗顯示,IsRead是否閱讀字段為是,也就是已經(jīng)閱讀的,正常顯示。

          然后,在閱讀頁(yè)面上,添加一個(gè)WebPart,功能是每當(dāng)?shù)顷懹脩酎c(diǎn)進(jìn)去查看這個(gè)站內(nèi)信,就用Item.SystemDate()把是否閱讀字段,更新為是,也就是已經(jīng)閱讀,這樣,返回站內(nèi)信列表的時(shí)候,加粗顯示就會(huì)消失。

          首先的站內(nèi)信提示,是讀取Sender==本人,且是否閱讀為否,也就是登陸賬號(hào)沒有閱讀的站內(nèi)信數(shù)量,通過(guò)Div浮動(dòng)顯示在右上角,加關(guān)閉js腳本實(shí)現(xiàn)。

        四、示例代碼:

        1、 解決方案結(jié)構(gòu),如下圖所示:

        clip_image017

        2、發(fā)件箱的事件觸發(fā)器代碼

        1、 public static string url = "http://mytravels";

        2、 ///

        3、 /// 已°?添?¨a加¨?項(xiàng)?.

        4、 ///

        5、 public override void ItemAdded(SPItemEventProperties properties)

        6、 {

        7、 string strTitle = string.Empty;

        8、 string strMessage = string.Empty;

        9、 string strCreator = string.Empty;

        10、 string strReceiver = string.Empty;

        11、

        12、 strTitle = properties.ListItem["Title"].ToString();

        13、 strMessage = properties.ListItem["Message"].ToString();

        14、 strCreator = properties.ListItem["Author"].ToString();

        15、 strReceiver = properties.ListItem["Receiver"].ToString();

        16、

        17、 using (SPSite site = new SPSite(url))

        18、 {

        19、 using (SPWeb web = site.OpenWeb())

        20、 {

        21、 string str = GetUserString(strReceiver);

        22、 if (str.IndexOf("$") > 0)

        23、 {

        24、 string[] strUser = str.Split('$');

        25、 for (int i = 0; i < struser.length;="">

        26、 {

        27、 SPListItem item = web.Lists["ReceiveList"].Items.Add();

        28、 item["Title"] = strTitle;

        29、 item["Message"] = strMessage;

        30、 item["Sender"] = strUser[i];

        31、 item["Onwer"] = strCreator;

        32、 item.Update();

        33、 }

        34、 }

        35、 else

        36、 {

        37、 SPListItem item = web.Lists["ReceiveList"].Items.Add();

        38、 item["Title"] = strTitle;

        39、 item["Message"] = strMessage;

        40、 item["Sender"] = strReceiver;

        41、 item["Onwer"] = strCreator;

        42、 item.Update();

        43、 }

        44、 }

        45、 }

        46、 //base.ItemAdded(properties);

        47、 }

        48、

        49、 public static string GetUserString(string str)

        50、 {

        51、 string Rs = string.Empty;

        52、 string strID = string.Empty;

        53、 if (str.IndexOf(";") > 0)

        54、 {

        55、 strID = str.Split(';')[0];

        56、 }

        57、 int myID = Convert.ToInt32(strID);

        58、 using (SPSite site = new SPSite(url))

        59、 {

        60、 using (SPWeb web = site.OpenWeb())

        61、 {

        62、 try

        63、 {

        64、 SPUser user = web.AllUsers.GetByID(myID);

        65、 Rs = str;

        66、 }

        67、 catch

        68、 {

        69、 }

        70、 try

        71、 {

        72、 SPGroup group = web.Groups.GetByID(myID);

        73、 SPUserCollection usercol = group.Users;

        74、

        75、 foreach (SPUser user in usercol)

        76、 {

        77、 if (user.Name == "系|ì統(tǒng)a3帳¨o戶?ì")

        78、 continue;

        79、 Rs += user.ID + ";#" + user.Name + "$";

        80、 }

        81、 Rs = Rs.Substring(0, Rs.Length - 1);

        82、 }

        83、 catch

        84、 {

        85、 }

        }

        }

        ?

        return Rs;

        }

        3、收件箱展示代碼:

        protected override void Render(HtmlTextWriter writer)

        {

        SPSite site = SPContext.Current.Site;

        SPWeb web = site.OpenWeb();

        SPList list = web.Lists["ReceiveList"];

        SPQuery query = new SPQuery();

        query.Query = @"

        " + web.CurrentUser.ID.ToString() + @"

        ";

        writer.Write("");

        writer.Write("

        ");

        writer.Write("

        ");

        foreach (SPListItem item in list.GetItems(query))

        {

        string BoldFont = "style='text-decoration:none;color:#000000;'";

        if (item["IsRead"].ToString() != "True")

        {

        BoldFont = "style='text-decoration:none;color:#000000;font-weight:bold;'";

        }

        writer.Write("

        ");

        }

        writer.Write("

        刪|?除y站?內(nèi)¨2信?標(biāo)à¨o題?a創(chuàng)???建?§時(shí)o?à間?
        ");

        writer.Write("" + item["Title"].ToString() + "");

        writer.Write("

        " + item["Created"].ToString() + "");

        writer.Write("

        ");

        //base.Render(writer);

        }

        4、修改站內(nèi)信為已讀代碼

        protected override void Render(HtmlTextWriter writer)

        {

        try

        {

        SPSecurity.RunWithElevatedPrivileges(delegate()

        {

        using (SPSite site = new SPSite("http://mytravels"))

        {

        using (SPWeb web = site.OpenWeb())

        {

        int ItemID = Convert.ToInt32(HttpContext.Current.Request.QueryString["ID"]);

        web.AllowUnsafeUpdates = true;

        SPListItem item = web.Lists["ReceiveList"].GetItemById(ItemID);

        item["IsRead"] = "True";

        item.SystemUpdate();

        web.AllowUnsafeUpdates = false;

        }

        }

        });

        }

        catch

        {

        }

        //base.Render(writer);

        }

        5、首頁(yè)未讀站內(nèi)信提示代碼

        protected override void Render(HtmlTextWriter writer)

        {

        SPSite site = SPContext.Current.Site;

        SPWeb web = site.OpenWeb();

        SPList list = web.Lists["ReceiveList"];

        SPQuery query = new SPQuery();

        query.Query = @"

        " + web.CurrentUser.ID.ToString() + @"

        False

        ";

        SPListItemCollection itemcoll = list.GetItems(query);

        if (itemcoll.Count == 0)

        return;

        string content = "未??讀¨¢站?內(nèi)¨2信?:êo" + itemcoll.Count.ToString();

        writer.Write(@"

        " + content + @" X

        ");

        }

        五、博主感言

          利用半天的時(shí)間,實(shí)現(xiàn)這樣一個(gè)功能,感覺這也是SharePoint比較方便的地方,簡(jiǎn)單的代碼開發(fā),頁(yè)面定制,完成一個(gè)小功能,效率也不算很低。當(dāng)然,我不是貶低net或者其他開發(fā),筆者對(duì)于每一項(xiàng)技術(shù),都很尊重。

          在SharePoint的開發(fā)中,最大的感觸就是無(wú)代碼開發(fā)和代碼開發(fā)相結(jié)合,這就需要我們對(duì)SharePoint現(xiàn)有功能的熟練掌握,和對(duì)于SharePoint平臺(tái)的理解,當(dāng)然,筆者從事SharePoint時(shí)間也不是很長(zhǎng),每個(gè)人都有自己的局限性,在利用業(yè)余時(shí)間,做點(diǎn)小東西共享給大家,一起學(xué)習(xí)探討SharePoint,是一件樂(lè)事。

          特別地說(shuō),實(shí)施過(guò)程由于時(shí)間倉(cāng)促,代碼寫的比較簡(jiǎn)單,更多為了實(shí)施功能,很多需要注意的地方,都沒有考慮太多;再有就是對(duì)于列表性能方面,也沒有涉及太多考慮,只是給予大家一個(gè)簡(jiǎn)單思路,如有參考,慎行。還有,就是每個(gè)人的技術(shù)不一樣,如果覺得本文過(guò)于簡(jiǎn)單請(qǐng)繞行,老鳥勿噴,謝謝。


        Sharepoint 可以幫助企業(yè)用戶輕松完成日常工作。

        溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!

        本類教程下載

        系統(tǒng)下載排行

        主站蜘蛛池模板: 亚洲成a人在线看天堂无码| 成在人线av无码免费高潮喷水| 国产又黄又爽又猛免费app| 久久久久亚洲AV成人无码| 日韩电影免费观看| 无码久久精品国产亚洲Av影片| 秋霞人成在线观看免费视频| 亚洲AV色香蕉一区二区| 每天更新的免费av片在线观看| 亚洲福利视频一区二区三区| 日韩精品免费一级视频| 久久精品国产亚洲AV忘忧草18| 免费羞羞视频网站| 美女裸免费观看网站| 国产精品V亚洲精品V日韩精品 | 自拍偷自拍亚洲精品被多人伦好爽| jizz日本免费| 亚洲精品免费视频| 永久免费毛片在线播放| 风间由美在线亚洲一区| 亚洲日韩精品无码专区网址 | 亚洲AV无码国产精品色午友在线| 最近免费字幕中文大全视频| 亚洲依依成人精品| 国产女高清在线看免费观看| 抽搐一进一出gif免费视频| 91精品国产亚洲爽啪在线观看| 欧洲精品成人免费视频在线观看| 国产精品亚洲色图| 国产V亚洲V天堂无码| 国内精品乱码卡1卡2卡3免费 | 国产裸模视频免费区无码| 精品熟女少妇aⅴ免费久久| 在线观看亚洲一区二区| 国产乱子影视频上线免费观看| 中国极品美軳免费观看| 亚洲中文字幕久久无码| 亚洲精品中文字幕无码蜜桃| 野花高清在线电影观看免费视频| 一级做受视频免费是看美女| 亚洲熟妇av一区二区三区下载|