C#方法第二次做其他事情

时间:2015-08-07 07:58:43

标签: c# asp.net gridview

我有一个ASP.Net GridView在第一次加载网站时正常工作,但是当我在GridView中更改页面时(我允许分页)不能做正确的事情但是它使用了完全相同的方法 这是我的方法:

protected void grdvProductChurn_DataBound()
{
    for (int rowIndex = grdvProductChurn.Rows.Count - 2; rowIndex >= 0; rowIndex += -1)
    {
        GridViewRow gvRow = grdvProductChurn.Rows[rowIndex];
        GridViewRow gvPreviousRow = grdvProductChurn.Rows[rowIndex + 1];

        for (int cellCount = 0; cellCount <= gvRow.Cells.Count - 8; cellCount++)
        {
            if (gvRow.Cells[cellCount].Text == gvPreviousRow.Cells[cellCount].Text)
            {
                if (gvPreviousRow.Cells[cellCount].RowSpan < 2)
                {
                    gvRow.Cells[cellCount].RowSpan = 2;
                }
                else
                {
                    gvRow.Cells[cellCount].RowSpan = gvPreviousRow.Cells[cellCount].RowSpan + 1;
                }
                gvPreviousRow.Cells[cellCount].Visible = false;
            }

        }
    }

那是aspx:

    <asp:GridView ID="grdvProductChurn" runat="server" CellPadding="4" HeaderStyle-BorderStyle="None" 
    BorderColor="#666666" BorderStyle="Solid" AllowPaging="True" AutoGenerateColumns="false" PageSize="30" DataSourceID="DataSource_ProductChurn" 
    AllowSorting="true" ForeColor="#666666" CellSpacing="1" DataFormatString="{0:###,###,###,###,###}" 
    CaptionAlign="Left"  Width="960px" HeaderStyle-HorizontalAlign="Center" HorizontalAlign="Center" CssClass="GridView2"
    Height="119px"    > 
    <Columns>

它的作用:
它应该将行放在一起,这些行具有相同的文本。
enter image description here
但是当我更改网站时,它使用相同的方法,但它不会将行放在一起。 enter image description here
我通过调试发现的:
在第二页上,gvPreviousRow.Cells [cellCount] .Visible从一开始就设置为false。

1 个答案:

答案 0 :(得分:0)

我现在解决了它: 所以我在Page_Load中调用了这个方法:

grdvProductChurn_DataBound();

相反,我实际上需要这样称呼它:

 grdvProductChurn.DataBound += new EventHandler(grdvProductChurn_DataBound);