【发布时间】:2019-07-13 09:37:45
【问题描述】:
【问题讨论】:
标签: sharepoint-2013 event-receiver
【问题讨论】:
标签: sharepoint-2013 event-receiver
决定与事件接收器一起做,如果有人有类似的要求,愿意分享代码。事件接收器可以轻松获取列的总和并获取每行的百分比。查看 ItemAdded 事件的代码,但您希望为 ItemUpdated 和 ItemDeleted 事件添加相同的代码,以便相应地反映更新。
public override void ItemAdded(SPItemEventProperties properties)
{
base.ItemAdded(properties);
string listName = "your list name goes here";
using (SPWeb web = properties.OpenWeb())
{
if (web.Lists[listName] != null)
{
try
{
SPList splist = web.Lists[listName];
int sum = 0;
foreach (SPListItem item in splist.Items)
{
sum = sum + Convert.ToInt32(item["Values"]);
}
//LoggingService
foreach (SPListItem item in splist.Items)
{
string percentage = string.Empty;
int percent = Convert.ToInt32(item["Values"]);/// Convert.ToInt32(sum);
double questient = (double)percent / sum;
percentage = questient.ToString("P1", CultureInfo.InvariantCulture);
item["Percent & widget"] = percentage;
this.EventFiringEnabled = false;
item.Update();
this.EventFiringEnabled = true;
}
}
catch (Exception ex)
{
// LoggingService
}
} // end if
} // end using
}
【讨论】: