我有一个网格视图,我将一些票数据加载到其中。根据用户操作,此 gridview 将加载不同的 sqldatasource 并重新显示数据。
这是gridview的标记:
<X:GridViewX ID="gvxTaskList" runat="server"
AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False"
Width="100%" Height="100%" CssClass="tablestyle"
OnRowCreated="gvxTaskList_RowCreated"
OnPageIndexChanging="gvxTaskList_PageIndexChanging"
OnSorting="gvxTaskList_Sorting">
所以,我有两个问题。
首先,排序事件对我来说根本不起作用。我在数据表中得到一个空值。编码:
protected void gvxTaskList_Sorting(object sender, GridViewSortEventArgs e)
{
try
{
System.Data.DataTable dataTable = gvxTaskList.DataSource as
System.Data.DataTable;
if (dataTable != null)
{
System.Data.DataView dataView = new System.Data.DataView(dataTable);
dataView.Sort = e.SortExpression + " " +
ConvertSortDirectionToSql(e.SortDirection);
gvxTaskList.DataSource = dataView;
gvxTaskList.DataBind();
}
}
catch (Exception ex)
{
}
}
private string ConvertSortDirectionToSql(SortDirection sortDirection)
{
string newSortDirection = String.Empty;
try
{
switch (sortDirection)
{
case SortDirection.Ascending:
newSortDirection = "ASC";
break;
case SortDirection.Descending:
newSortDirection = "DESC";
break;
}
}
catch (Exception ex)
{
}
return newSortDirection;
}
if (dataTable != null) 失败,因为它是空的。
第二个问题是分页。当它第一次加载 gridview 时,分页很好。我有两页的数据onload。我可以整天来回翻页,没有错误。问题是当我更改数据源并带回三页数据时。我尝试立即从第一页单击第 3 页,它会重新加载以前的数据(有两页)。任何帮助,将不胜感激。