Sharepoint с использованием приемника событий - PullRequest
0 голосов
/ 19 февраля 2019

У меня есть требование от клиента показывать процент от значения столбца от суммы столбца, как на картинке ниже, без виджета.желательно, чтобы я использовал ссылку JS в sharepoint.пожалуйста, дайте мне знать, если это то, что мы можем сделать с помощью ссылки JS.enter image description here

1 Ответ

0 голосов
/ 23 февраля 2019

решил сделать это с получателем событий и хотел бы поделиться кодом, если у кого-то есть подобное требование.Приемник событий позволяет легко получить сумму столбца и получить процент для каждой строки.см. код для события 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
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...