2010-10-20 29 views
2

我在SharePoint 2010解決方案中使用了一個帶有ObjectDataSource控件的SPGridView控件。 SPGridview允許我對列表項目進行排序和翻頁確定,但是當兩個SPGridView控件放置在同一頁面上時,我注意到了一個問題。當我通過單擊列標題鏈接對較低的SPGridView控件進行排序時,排序操作成功。但是,當我點擊較低SPGridView列標題上的ECB菜單可用的排序選項時,排序應用於上部的SPGridView控件。用多個SPGridViews排序的問題

任何人都可以提供修補程序或指導如何解決此問題嗎?

謝謝,MagicAndi。

回答

1
+0

布賴恩對於延遲接受這個答案表示歉意。我發佈了我的解決方案,該解決方案基於您提供的鏈接。 – MagicAndi 2010-11-04 17:01:37

1

基於由brian brinley提供的鏈接,我想出了這個稍微更通用的解決方案:

protected override void OnPreRender(EventArgs e) 
{ 
    if (this.HeaderRow != null) 
    { 
     foreach (WebControl control in this.HeaderRow.Controls) 
     {      
      UpdateTemplateClientID(control); 
     }  
    } 

    base.OnPreRender(e); 
} 

private void UpdateTemplateClientID(Control control) 
{ 
    if (control is Microsoft.SharePoint.WebControls.Menu) 
    { 
     Microsoft.SharePoint.WebControls.Menu menuControl = control as Microsoft.SharePoint.WebControls.Menu; 
     string jsFunctionCall = menuControl.ClientOnClickPreMenuOpen; 
     menuControl.ClientOnClickPreMenuOpen = jsFunctionCall.Replace("%TEMPLATECLIENTID%", this.ClientID + "_SPGridViewFilterMenuTemplate"); 
    } 
    else if (control.HasControls()) 
    { 
     foreach (WebControl c in control.Controls) 
     { 
      UpdateTemplateClientID(c); 
     } 
    } 
}