【发布时间】:2012-03-14 10:56:28
【问题描述】:
我有一个gridView table (using ASP.NET 3.5),它使用SqlDataSource 对象(来自我的SQL DB)填充,根据不同的授权规则(检索到更多/更少的信息),它从不同的SELECT 命令动态变化。
在 GridView 中,我设置了 AllowSorting=true,它运行良好。
我的问题是:
我想disable Sorting 获取特定列(例如照片),我知道这是通过设置完成的:
myGrid.Columns[i].SortExpression = "";
仅当我尝试访问此特定列时,我收到以下错误: `Index Out Of Bound(列还不存在!)。
我尝试连接到以下事件:
- 行数据绑定
- Rowata 绑定
它仍然没有工作。 如何访问特定列(一旦它被动态创建)并禁用它的排序?
这里是片段:
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;
}
谢谢! :) 米西。
【问题讨论】: