2010-04-06 3 views

답변

0

더 간단한 것을 시도 했습니까? 우리는 실행중인 코드를 볼 수 없다면 버그를 평가할 수 없습니다. 예를 게시하십시오.

더 간단 코멘트에서 하나 :

using System; 
using System.Data; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.ComponentModel; 


    /// <summary> 
    /// This wraps the Web Repeater class and adds grouping capabilities. 
    /// </summary> 
    public class GroupingRepeater : Repeater 
    { 

     private string _lastGroup; 
     private string _groupColumn; 
     private ITemplate _groupTemplate; 

     /// <summary> 
     /// Gets or sets the column to group by. 
     /// </summary> 
     [Browsable(true), Category("Behaviour")] 
     public string GroupColumn 
     { 
      get { return _groupColumn; } 
      set { _groupColumn = value; } 
     } 

     /// <summary> 
     /// Gets or sets the template used for Grouping. 
     /// </summary> 
     [PersistenceMode(PersistenceMode.InnerProperty)] 
     [Browsable(false)] 
     [TemplateContainer(typeof(RepeaterItem))] 
     [DefaultValue("")] 
     public virtual ITemplate GroupTemplate 
     { 
      get { return _groupTemplate; } 
      set { _groupTemplate = value; } 
     } 

     /// <summary> 
     /// Default constructor. 
     /// </summary> 
     public GroupingRepeater() 
     { 
      _lastGroup = null; 
     } 

     /// <summary> 
     /// Called when an item is created. 
     /// </summary> 
     /// <param name="e"></param> 
     protected override void OnItemCreated(RepeaterItemEventArgs e) 
     { 
      base.OnItemCreated(e); 

      if (!string.IsNullOrEmpty(GroupColumn)) 
      { 
       string currentGroup = e.Item.DataItem.GetType().GetProperty(GroupColumn).GetValue(e.Item.DataItem, null).ToString(); 
       if (_lastGroup == null || _lastGroup != currentGroup) 
       { 
        RepeaterItem item = new RepeaterItem(0, ListItemType.Item); 

        GroupTemplate.InstantiateIn(item); 
        item.DataItem = e.Item.DataItem; 
        this.Controls.Add(item); 
        item.DataBind(); 

        _lastGroup = currentGroup; 
       } 
      } 
     } 

    } 
+0

네, 그 코드를 기반으로합니다. 다시 빌드 한 후에 템플릿이 올바른 순서로 나왔지만이 코드는 포스트 백 이벤트에 문제가 있습니다. 첫 번째 그룹 이외의 버튼에 단추 이벤트를 가져 오는 데는 문제가 있습니다. 중첩 된 중계기 경로를 지금 완료했습니다. – HadleyHope