SharePoint List 열 집계 (총) 계산을 사용자 정의하려면 어떻게해야합니까?

StackOverflow https://stackoverflow.com/questions/1808245

문제

'단일 줄'유형의 SharePoint 목록 열이 있습니다. 상자에서 SharePoint는이 열 유형에 대해 '카운트'총을 표시하는 기능 만 제공합니다. 데이터에 대한 사용자 정의 집계를 수행하고 싶습니다 (특히 극복 할 텍스트로 보유한 합계 숫자 데이터까지 이 결함).

계산 된 열과 비슷한 일을하는 예제를 찾았습니다. xslt 그리고 자바 스크립트 그러나이 두 가지 접근 방식이 데이터가 페이지를 찍는 곳에서 실패한다고 생각합니다 (화면에 표시된 목록 컨텐츠의 하위 집합 만 집계).

나는 그 기능을 유지하고 싶습니다 ListViewWebPart (렌더링, 정렬, 필터링, 정의보기, 액션 메뉴 등)이 기능을 추가하십시오. 어떻게 할 수 있습니까?

도움이 되었습니까?

해결책 2

나는 그것을 완전히 테스트 할 기회가 없었지만 이것이 내가 생각해 낼 수있는 최선입니다.

a WebPart 두 가지 컨트롤이 포함되어 있습니다.

  1. ViewToolBar 목록/보기의 컨텍스트가 표시됩니다.
  2. Literal 표시 할 뷰의 렌더링 된 HTML을 포함

그러면 원래 목록/보기로 렌더링됩니다.

렌더링에 WebPart,보기에서 항목을 가져 와서 RowLimit 모든 항목이 검색되도록 최대 값으로 (첫 번째 페이지뿐만 아니라).

항목을 반복하여 정밀도를 유지하기 위해 적절한 데이터 유형의 총계를 계산합니다.

총계를 HTML에서 숨겨진 값으로 렌더링하고 렌더링 된 값을 덮어 씁니다. Count 다음과 같은 JavaScript가있는 총계 여기에 설명 된 방법.

코드의 대략적인 스케치 :

public sealed class TextAggregatingWebPart : WebPart {
  protected override void CreateChildControls() {
    base.CreateChildControls();

    var web = SPContext.Current.Web;
    var list = web.Lists[SourceList];
    var view = list.Views[ViewOfSourceList];

    var toolbar = new ViewToolBar();
    var context = SPContext.GetContext(
    Context, view.ID, list.ID, SPContext.Current.Web);
    toolbar.RenderContext = context;
    Controls.Add(toolbar);

    var viewHtml = new Literal {Text = view.RenderAsHtml()};
    Controls.Add(viewHtml);
  }

  protected override void Render(HtmlTextWriter writer) {
    EnsureChildControls();
    base.Render(writer);

    var web = SPContext.Current.Web;
    var list = web.Lists[SourceList];
    var view = list.Views[ViewOfSourceList];

    var items = list.GetItems(new SPQuery(view) {RowLimit = uint.MaxValue});
    foreach (SPItem item in items) {
      // Calculate total
    }

    // Render total and Javascript to replace Count
  }
}

이것은 수정 뷰 화면에서만 문제를 해결하지 못한다는 점에 유의하십시오. Count 텍스트 열의 총계. 또한보기에 의한 초기 렌더링과 집계 항목의 검색 사이에 목록이 변경되면 전체 항목과 표시된 항목 사이에 불일치가 생길 수 있습니다.

다른 팁

총계로 할 수있는 유일한 일은 다음과 같습니다.

평균; 세다; 맥스; 민; 합집합; 표준 편차; 변화

다른 것을 계산하는 방법을 잘 모르겠습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top