如何在页面加载时进行排序以及如何基于GridView中的排序显示图像

SearchForKnowledge

我有以下代码(asp.net和背后的代码)可以实现排序:

protected void Page_Load(object sender, EventArgs e)
{

    if (!Page.IsPostBack)
    {
        PullData("", "");
        ViewState["sortOrder"] = "";
    }
}
public void PullData(string sortExp, string sortDir)
{
    DataTable taskData = new DataTable();
    string connString = @"user id = dsfsdfds;" + "password= sadasdada; server=  mg; database= ob;" /*+ "Trusted_Connection=yes;"*/  + "connection timeout=30";
    string query = @"SELECT  'http://mg/appnet/workview/objectPop.aspx?objectid=' + CAST(CT.OBJECTID AS VARCHAR) + '&classid=1224' 'Task Detail'
            ,UG.USERGROUPNAME 'Services'
            ,CT.ATTR2812 'Status'
            ,CT.ATTR2752 'Due Date'
            ,CT.ATTR2739 'Task Name'

        FROM dbo.RMOBJECTINSTANCE1224 CT
        WHERE CT.ACTIVESTATUS = 0";

    using (SqlConnection conn = new SqlConnection(connString))
    {
        try
        {
            SqlCommand cmd = new SqlCommand(query, conn);

            // create data adapter
            SqlDataAdapter da = new SqlDataAdapter(query, conn);
            // this will query your database and return the result to your datatable

            DataSet myDataSet = new DataSet();
            da.Fill(myDataSet);

            DataView myDataView = new DataView();
            myDataView = myDataSet.Tables[0].DefaultView;

            if (sortExp != string.Empty)
            {
                myDataView.Sort = string.Format("{0} {1}", sortExp, sortDir);
            }

            yourTasksGV.DataSource = myDataView;
            yourTasksGV.DataBind();

            conn.Close();
        }
        catch (Exception ex)
        {
            string error = ex.Message;
        }
    }
}

protected void yourTasksGV_Sorting(object server, GridViewSortEventArgs e)
{
    PullData(e.SortExpression, sortOrder);
}
public string sortOrder
{
    get
    {
        if (ViewState["sortOrder"].ToString() == "Desc")
        {
            ViewState["sortOrder"] = "Asc";
        }
        else
        {
            ViewState["sortOrder"] = "Desc";
        }

        return ViewState["sortOrder"].ToString();
    }
    set
    {
        ViewState["sortOrder"] = value;
    }
}

我的GridView

<asp:GridView AlternatingRowStyle-BackColor="#E2E2E2" AutoGenerateColumns="false" OnSorting="yourTasksGV_Sorting" AllowSorting="true" ID="yourTasksGV" runat="server" ClientIDMode="Static" EmptyDataText="There is no data to display" OnRowDataBound="yourTasksGV_RowDataBound" OnRowCreated="yourTasksGV_RowCreated">
    <Columns>
        <asp:HyperLinkField Target="_blank" DataNavigateUrlFields="Task Detail" DataTextField="Task Name" DataNavigateUrlFormatString="" HeaderText="Task Details" SortExpression="Task Detail" ItemStyle-Width="35%" ItemStyle-CssClass="taskTableColumn" />
        <asp:BoundField DataField="Services" HeaderText="Services" SortExpression="Services" ItemStyle-Width="25%" ItemStyle-CssClass="taskTableColumn" />
        <asp:BoundField DataField="Status" HeaderText="Status" SortExpression="Status" ItemStyle-Width="15%" ItemStyle-CssClass="taskTableColumn" />
        <asp:BoundField DataField="Due Date" HeaderText="Due Date" SortExpression="Due Date" ItemStyle-Width="15%" ItemStyle-CssClass="taskTableColumn" />
    </Columns>
</asp:GridView>

对于第一列,我将Task Name和用作Task DetailSQL查询列中链接的显示文本(DataTextField是“任务名称”而不是“任务详细信息”)。

如何修改我的代码以执行以下操作:

  1. 当我单击Task Details选项卡时,应按进行排序,Task Name该显示为链接的显示,即Task Detail
  2. 在我要对表格进行排序的标题文本旁边显示图像?(up.png和down.png)?
  3. 在页面加载时,按#1 ASC排序并分别显示图像?

GridView正在向用户显示的内容(请注意,链接的第一列是如何在中使用的href,显示文本是Task Name):

在此处输入图片说明

法罗克

这里有一个有用的解决方案:

http://blogs.msdn.com/b/scothu/archive/2010/08/28/gridview-with-sort-arrows-and-showing-header-when-empty.aspx

您可以
使用以下代码来显示图像:

protected void gv_RowCreated(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.Header)
    {
        //Call the GetSortColumnIndex helper method to determine
        //the index of the column being sorted.

        int sortColumnIndex = GetSortColumnIndex();

        if (sortColumnIndex != -1)
        {
            // Call the AddSortImage helper method to add
            // a sort direction image to the appropriate
            // column header. 
            AddSortImage(sortColumnIndex, e.Row);
        }
    }
}

int GetSortColumnIndex()
{
    // Iterate through the Columns collection to determine the index
    // of the column being sorted.
    foreach (DataControlField field in gv.Columns)
    {
        if (field.SortExpression == gv.SortExpression)
        {
            return gv.Columns.IndexOf(field);
        }
    }

    return -1;
}

    void AddSortImage(GridViewRow headerRow) 
{ 
     int iCol = GetSortColumnIndex();
     if (-1 == iCol) 
           return; 

     // Create the sorting image based on the sort direction.

     Image sortImage = new Image();
     if (SortDirection.Ascending == this.GridView1.SortDirection) 

{             sortImage.ImageUrl = @"~\Images\BlackDownArrow.gif"; 
               sortImage.AlternateText = "Ascending Order"; 
}     else  
{
             sortImage.ImageUrl = @"~\Images\BlackUpArrow.gif";
             sortImage.AlternateText = "Descending Order";
}
      // Add the image to the appropriate header cell. 
        headerRow.Cells[iCol].Controls.Add(new LiteralControl("&nbsp;"));
        headerRow.Cells[iCol].Controls.Add(sortImage); 
} 

并进行排序,启用gridview的“允许排序属性”,然后将“排序表达式”添加到column属性。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在GridView中显示基于排序类型的图像

来自分类Dev

如何在页面加载时在GridView中显示箭头

来自分类Dev

如何在页面加载时在GridView中显示箭头

来自分类Dev

如何在页面加载时显示加载的gif图像

来自分类Dev

如何在引导程序中对图像进行排序?

来自分类Dev

如何在页面加载时在devexpress gridview中隐藏列?

来自分类Dev

根据日期对图像进行排序并在gridview中显示

来自分类Dev

如何在yii2中连接3个表并在Gridview中显示,然后正确进行排序

来自分类Dev

页面快速加载时如何显示图像?

来自分类Dev

当要排序的值是计算结果时,如何在Vue中对列进行排序

来自分类Dev

如何在DataGridView中重新排序列时对列索引进行排序?

来自分类Dev

如何对图像数组进行排序

来自分类Dev

如何在clojure中对varargs进行排序?

来自分类Dev

如何在lua中对表进行排序?

来自分类常见问题

如何在Java中对ArrayList进行排序

来自分类Dev

如何在精灵中对字典进行排序

来自分类Dev

如何在JAVA中对JSONArray进行排序

来自分类Dev

如何在ReactJs中对动画进行排序

来自分类Dev

如何在dataweave中对降序进行排序?

来自分类Dev

如何在R中对颜色进行排序

来自分类Dev

如何在HashMap中对值进行排序

来自分类Dev

如何在ListView中对项目进行排序?

来自分类Dev

如何在Vaadin中对ComboBox进行排序?

来自分类Dev

如何在clojure中对varargs进行排序?

来自分类Dev

如何在Java中对Arraylist进行排序

来自分类Dev

如何在WinJS中对ListView进行排序?

来自分类Dev

如何在Java中对书籍进行排序

来自分类Dev

如何在字典中对列表进行排序

来自分类Dev

如何在函数中对结构进行排序

Related 相关文章

热门标签

归档