У меня есть gridView table (using ASP.NET 3.5)
, который заполняется с помощью объекта SqlDataSource
(из моей базы данных SQL), который динамически меняется от другой команды SELECT в соответствии с различными правилами авторизации (извлекается больше / меньше информации).
В 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;
}
Спасибо!:) Мицы.