我有一個gridView table (using ASP.NET 3.5)
,它使用來自我的SQL DB的SqlDataSource
對象(根據不同的授權規則動態更改)動態變化(更多/更少的信息是檢索)。爲動態創建的GridView上的特定列禁用SortExpression
在GridView中,我設置了AllowSorting=true
,它的工作完美。
我的問題是: 我想disable Sorting
特定的列(如照片),我理解它是通過設置來完成:
myGrid.Columns[i].SortExpression = "";
只是,當我試圖訪問這個特定的列,我得到的錯誤: `索引超出界限(列還不存在!)。
我試圖連接到下列事件:
- 的RowDataBound
- RowataBinding
,它仍然沒有工作。 如何訪問特定列(一旦它動態創建)並禁用它的排序?
下面是摘錄:
ASPX Page:
<asp:GridView ID="gridNew" runat="server" AllowPaging="True"
AllowSorting="True" EnableModelValidation="True">
.CS Page:
protected void btnSend_Click(object sender, EventArgs e)
{
gridNew.DataSourceID = "Employees_DataSource";
switch (ddlSelection.SelectedValue)
{
case "Admin":
Employees_DataSource.SelectCommand = @"SELECT * FROM [Employees]";
gridNew.AutoGenerateDeleteButton = true;
gridNew.AutoGenerateEditButton = true;
gridNew.DataBind();
//gridNew.Columns[1].SortExpression = "";
// This is not working!! :(
break;
case "Manager": ...
default:
break;
}
謝謝! :) Mitsy。
嗨!通過做您的解決方案,並禁用排序邏輯,我真的不*禁用*列標題出現一個按鈕(「排序」),只有使其保持點擊,但什麼都不做。任何想法如何我實際上可以防止它出現作爲一個按鈕? (如標籤)。 – user1268741 2012-03-14 12:30:22
@ user1268741:編輯我的答案。您應該顯示動態創建網格的方式和位置。 – 2012-03-14 12:48:31
這些列是使用SqlDataSource對象動態創建的。它完美的工作,我唯一的問題是與排序。其他解決方案? :\ – user1268741 2012-03-14 14:13:52