#c# #asp.net
#c# #asp.net
Вопрос:
Я привязываю GridView в asp.net из набора данных. Здесь я сортирую представление сетки по тексту заголовка. Мой код:
public SortDirection GridViewSortDirection
{
get
{
if (ViewState["sortDirection"] == null)
ViewState["sortDirection"] = SortDirection.Ascending;
return (SortDirection)ViewState["sortDirection"];
}
set { ViewState["sortDirection"] = value; }
}
protected void gridLeaveRequest_Sorting(object sender, GridViewSortEventArgs e)
{
string sortExpression = e.SortExpression;
if (GridViewSortDirection == SortDirection.Ascending)
{
GridViewSortDirection = SortDirection.Descending;
SortGridView(sortExpression, "DESCENDING");
}
else
{
GridViewSortDirection = SortDirection.Ascending;
SortGridView(sortExpression, "ASCENDING");
}
}
private void SortGridView(string sortExpression, string direction)
{
dsLoginDetail = clsBLogic.GetLoginDetailByEmployeeNo(Convert.ToString(Session["LoginName"]));
emoloyeeNo = dsLoginDetail.Tables[0].Rows[0]["EmployeeNo"].ToString();
DataSet dsLeaveRequest = new DataSet();
dsLeaveRequest = clsBLogic.GetLeaveRequestByEmployeeNo(emoloyeeNo);
DataTable dt = dsLeaveRequest.Tables[0];
DataView dv = new DataView(dt);
dv.Sort = sortExpression direction;
gridLeaveRequest.DataSource = dv;
gridLeaveRequest.DataBind();
}
<asp:GridView ID="gridLeaveRequest" EmptyDataText="No Record Found..." runat="server" AutoGenerateColumns="false"
AllowPaging="True" PageSize="20" OnPageIndexChanging="gridLeaveRequest_PageIndexChanging" AllowSorting="True" OnSorting="gridLeaveRequest_Sorting">
<asp:BoundField DataField="Purpose" HeaderText="Purpose" ItemStyle-Width="40%" SortExpression="Purpose" >
</asp:BoundField>
Когда я нажимаю на целевой заголовок gridview, я получаю ошибку времени выполнения "Cannot find column PurposeDESCENDING."
при dv.sort=sortExpression direction;
Любая помощь?? заранее спасибо
Комментарии:
1. Вам нужен пробел между SortExpression и direction: dv.Sort = SortExpression » » direction;
2. это не сработало .. ошибка «Не удается найти назначение столбца ПО УБЫВАНИЮ».
Ответ №1:
Изменить DESCENDING
с помощью DESC
Изменить ASCENDING
с помощью ASC
Добавьте пробел между SortExpression
и SortDirection
;
dv.Sort = sortExpression " " direction;