Hi,
aspx page
<asp:TemplateField HeaderText="Assigned" SortExpression="AssignedToDealer">
<ItemTemplate>
</ItemTemplate>
</asp:TemplateField>
we are using "LLBLGenProDataSource" to bind data to gridview
<llblgenpro:LLBLGenProDataSource ID="DS" runat="server" DataContainerType="TypedList"
EnablePaging="True" TypedListTypeName="DAL.TypedListClasses.XXLeadTypedList, DAL">
</llblgenpro:LLBLGenProDataSource>
in the .cs file:
protected void gvList_Sorting(object sender, GridViewSortEventArgs e)
{
string sort = e.SortDirection.ToString();
string sortexpression = e.SortExpression;
ViewState["sort"] = sort;
ViewState["sortexpression"] = sortexpression;
BindData();
upList.Update();
}
BindData function:
void BindData()
{
DS.FilterToUse = GetFilter();
DS.SorterToUse = GetSorter();
DS.Refetch = true;
DS.DataBind();
}
GetSorter():
ISortExpression GetSorter()
{
ISortExpression sorter = new SortExpression();
if (ViewState["sort"] == null)
{
sorter.Add(XXLeadFields.CreatedDatetime | SortOperator.Ascending);
}
else
{
string sort = ViewState["sort"].ToString();
string sortexpression = ViewState["sortexpression"].ToString();
SortOperator so = SortOperator.Ascending;
if (sort == "Descending")
{
so = SortOperator.Descending;
}
EntityField ef = XXLeadFields.CreatedDatetime;
if (sortexpression == "FirstName")
{
//...
}
else if (sortexpression == "AssignedToDealer")
{
ef = DealerFields.DealerName;
}
sorter.Add(ef | so);
}
return sorter;
}
the generated SQL:
ORDER BY Lead.AssignedToDealer ASC
the order should be : order by Lead.DealerName,
but it still order by AssignedToDealer.
why?
thank you