日本国产亚洲-日本国产一区-日本国产一区二区三区-日本韩国欧美一区-日本韩国欧美在线-日本韩国欧美在线观看

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

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

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

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

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

用SharePoint代碼加實施的方式,完成類似人人網(wǎng)站內(nèi)信功能,當(dāng)然,實現(xiàn)的比較簡單,樣式也比較難看,只為給大家一個實施的簡單思路,如有謬誤,還請見諒。當(dā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、切換賬號,張三登陸,查看右上角登錄信息,張三;右上角有一天未讀信息提示,是個WebPart,把鼠標(biāo)放在上面,看到狀態(tài)欄有鏈接,是查看站內(nèi)信的鏈接,點擊進(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、切換回來收件箱,然后點擊那條收到的站內(nèi)信,如下圖:

clip_image005

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

clip_image008

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

clip_image007[1]

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

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

clip_image009

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

clip_image010

3、站內(nèi)信發(fā)送完畢后,張三的站內(nèi)信收件箱有一條新站內(nèi)信,因為他也在聯(lián)系人組,如下圖:

clip_image011

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

clip_image012

5、切換李四賬號,進(jìn)入首頁,發(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)簡單介紹

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

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

clip_image015

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

clip_image016

原理簡介:

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

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

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

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

四、示例代碼:

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

clip_image017

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

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

2、 ///

3、 /// 已°?添?¨a加¨?項?.

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)???建?§時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、首頁未讀站內(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

");

}

五、博主感言

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

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

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


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

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

主站蜘蛛池模板: 亚洲午夜国产精品 | 免费看全程的狂色视频 | 午夜影院男女 | 爽片免费网站 | wwww在线观看| 久久亚洲国产午夜精品理论片 | 四虎精品免费永久在线 | 亚洲欧美乱综合图片区小说区 | 欧美午夜在线观看 | 美乃雀中文字幕在线一区 | 欧美一区二区三区不卡 | 免费看又黄又爽又猛的网站 | 男女国产 | 国内国外精品一区二区 | 欧美在线不卡 | 福利视频中文在线观看 | 欧美另类videosbest视频 | 草草视频在线播放 | 日本一区二区三区久久久久 | 欧日韩在线不卡视频 | 欧美成人亚洲综合精品欧美激情 | japanesefreel日本乱| 久久久国产高清 | 欧美视频一区二区专区 | 日韩欧美国产中文字幕 | 男人用机机桶女人 | 国产日韩三级 | 亚洲精品一区二区卡 | 国产精品婷婷久久爽一下 | 国产精品毛片一区 | 久久99免费 | 久久国产成人亚洲精品影院老金 | 国模私拍福利视频在线 | 91精品国产91久久久久福利 | 欧美国产成人精品一区二区三区 | 国产成人永久免费视频 | 欧美一级片在线播放 | 欧美另类视频 | 91成人精品视频 | 色综合久久综精品 | 日韩欧美一级毛片精品6 |