1

这可能有点棘手,所以请多多包涵。

我从 gridview 得到这个结果,数据来自数据透视表:

DateCreate        02/11/2013 02/19/2013  Total 
OrdersPendInvoice 0          1           1 
OrdersPendPickUp  1          15          16

这里可选择的项目是数字,并且只是大于零的数字。

因此,首先我需要这些项目(可选择的项目)使它们像 linkBut​​tons 子,当我单击其中一个时,我可以将两个标题都作为参考(这里是另一个棘手的部分)传递。

我们举个例子:

如果我点击数字 15,这基本上意味着 2013 年 2 月 19 日有 15 个 OrdersPendPickUp。然后我将转到带有参考文献的不同页面,02/19/2013OrdersPendPickUp在那里显示这 15 条记录。只要我有参考资料,我对最后一部分没有任何问题。

对于这种Total情况,我只需要OrdersPendInvoiceor OrdersPendPickUp(取决于所选项目),因为无论日期如何,我都会获得该参考的所有记录。

我这样做了,但实际上并不多,只是改变了大于零的项目的颜色:(

protected void gvOrdersProcessed_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType != DataControlRowType.Pager)
    {
        for (int i = 0; i <= e.Row.Cells.Count - 1; i++)
        {
            if (TryToParse(e.Row.Cells[i].Text) > 0)
            {
                e.Row.Cells[i].ForeColor = System.Drawing.Color.Red;
            }
        }
    }
}

private int TryToParse(string value)
{
    int number;
    bool result = Int32.TryParse(value, out number);
    if (result)
        return number;
    else
        return 0;
}
4

1 回答 1

2

是的,这很棘手。但是,请尝试以下操作:

private List<string> _headers = new List<string>();

protected void gvOrdersProcessed_RowDataBound(object sender, GridViewRowEventArgs e)
{
    //Collect the texts from the column headers
    if (e.Row.RowType == DataControlRowType.Header)
    { 
        for (int i = 0; i <= e.Row.Cells.Count - 1; i++)
        {
            this._headers.Add(e.Row.Cells[i].Text);
        }
    }

    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        for (int i = 0; i <= e.Row.Cells.Count - 1; i++)
        {
            if (TryToParse(e.Row.Cells[i].Text) > 0)
            {
                string rowKey = e.Row.Cells[0].Text;
                string column = this._headers[i];

                HyperLink link = new HyperLink();
                link.Text = e.Row.Cells[i].Text;
                link.NavigateUrl="page.aspx?key=" + rowKey  + "&column=" +column;

                e.Row.Cells[i].Controls.Clear();
                e.Row.Cells[i].Controls.Add(link);
            }
        }
    }
}

链接就像:

正常值: ~/page.aspx?key=OrdersPendPickUp&column=02/19/2013
总计: ~/page.aspx?key=OrdersPendPickUp&column=Total

于 2013-02-28T00:11:41.753 回答