如何在网格视图中单击数据透视表项时获取标题值

本文关键字:获取 标题 透视 数据 网格 视图 单击 | 更新日期: 2023-09-27 18:01:33

这可能有点棘手,所以请耐心等待。

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

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

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

所以首先我需要这些项目(可选择的)使他们像linkButtons的儿子当我点击其中一个,我可以传递作为参考(这里的另一个棘手的部分)两个头。

举个例子:

如果我点击数字15,这基本上意味着日期02/19/2013有15个OrdersPendPickUp。然后我将转到另一页,参考02/19/2013OrdersPendPickUp,那里显示了这15条记录。我对最后一部分没有问题,只要我有参考资料。

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

我这样做了,但它并没有太多,只是改变了大于0的项的颜色:(

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;
}

如何在网格视图中单击数据透视表项时获取标题值

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

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
Total: ~/page.aspx?key=OrdersPendPickUp&column=Total