使用事件接收器的Sharepoint

问题描述 投票:0回答:1

我有一个要求来自客户端显示列值的百分比,如下图所示,不包括小部件。最好我想在sharepoint中使用JS链接。如果这是我们可以用js链接完成的,请告诉我。 enter image description here

sharepoint-2013 event-receiver
1个回答
0
投票

决定用事件接收器做这件事,并且如果任何人有类似的要求,他们想分享代码。事件接收器可以很容易地获得列的总和并获得每行的百分比。查看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
    }
© www.soinside.com 2019 - 2024. All rights reserved.