C# 在gridview标题中对图像进行排序
我有一个名为C# 在gridview标题中对图像进行排序,c#,.net,C#,.net,我有一个名为SearchGenericReport的Gridview。我想在Gridview列的标题中对图像进行上下排序。但是GetSortColumnIndex(string strrCol)总是返回-value。所以我不能添加图像。我错过了什么 public int GetSortColumnIndex(String strCol) { DataTable result= Session["TaskTable"] as DataTable; foreach (DataCont
SearchGenericReport
的Gridview
。我想在Gridview列的标题中对图像进行上下排序。但是GetSortColumnIndex(string strrCol)
总是返回-value
。所以我不能添加图像。我错过了什么
public int GetSortColumnIndex(String strCol)
{
DataTable result= Session["TaskTable"] as DataTable;
foreach (DataControlField field in result.Columns)
{
if (field.SortExpression == strCol)
{
return SearchGenericReport.Columns.IndexOf(field);
}
}
return -1;
}
void AddSortImage(GridViewRow headerRow)
{
int selCol = GetSortColumnIndex(m_strSortExp);
//if (-1 == selCol)
//{
// return;
//}
// Create the sorting image based on the sort direction
Image sortImage = new Image();
if (SortDirection.Ascending == m_SortDirection)
{
sortImage.ImageUrl = "img/uparrow.png";
sortImage.AlternateText = "Ascending";
}
else
{
sortImage.ImageUrl = "img/downarrow.png";
sortImage.AlternateText = "Descending";
}
// Add the image to the appropriate header cell
headerRow.Cells[selCol].Controls.Add(sortImage);
}
但是当我在gridview.Columns上快速观察时——它的结果是“enumertaion不产生任何结果”之类的。 并且它不会只针对每个循环进入。。我修改了这样的代码- int GetSortColumnIndex() {
// Iterate through the Columns collection to determine the index
// of the column being sorted.
foreach (DataControlField field in this.SearchGenericReport.Columns)
{
if (field.SortExpression == SearchGenericReport.SortExpression)
{
return SearchGenericReport.Columns.IndexOf(field);
}
}
return -1;
}
void AddSortImage(int columnIndex,GridViewRow headerRow)
{
// Create the sorting image based on the sort direction
Image sortImage = new Image();
SortDirection direction = SearchGenericReport.SortDirection;
if (direction == SortDirection.Ascending)
{
sortImage.ImageUrl = "img/uparrow.png";
sortImage.AlternateText = "Ascending";
}
else
{
sortImage.ImageUrl = "img/downarrow.png";
sortImage.AlternateText = "Descending";
}
// Add the image to the appropriate header cell
headerRow.Cells[columnIndex].Controls.Add(sortImage);
}
当对多个列进行排序时,field.property包含一个逗号分隔的字段列表,您可以使用
contains(strCol)
更好的解决方案是拆分逗号分隔的字符串表达式,并检查它是否有列strCol