我想基於某些條件在GridVIew上添加一些行,並且我得到「指定的參數超出範圍有效值「錯誤。 這是我的GridView:在GridView上添加行得到「指定的參數超出有效值的範圍」
<asp:GridView ID="gvConcept" runat="server" CellPadding="0" CssClass="table" CellSpacing="0" AutoGenerateColumns="false" GridLines="Vertical" BorderStyle="Solid" ShowFooter="false" OnRowDataBound="gvConcept_RowDataBound" OnRowCreated="gvConcept_RowCreated" >
<Columns>
<asp:BoundField DataField="Concept" HeaderText=" Concept" />
<asp:BoundField DataField="Client" HeaderText=" Client" />
<asp:BoundField DataField="YTD" HeaderText=" YTD" ItemStyle-HorizontalAlign="Right" />
</Columns>
</asp:GridView>
這是我的代碼隱藏:
string ParAnt = string.Empty;
string partner = string.Empty;
protected void gvConcept_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
ParAnt = DataBinder.Eval(e.Row.DataItem, "Partner").ToString();
}
}
public void AddNewRow(object sender, GridViewRowEventArgs e, int rowIndex)
{
GridView GridView1 = (GridView)sender;
GridViewRow NewTotalRow = new GridViewRow(0, 0, DataControlRowType.DataRow, DataControlRowState.Insert);
NewTotalRow.Font.Bold = true;
NewTotalRow.ForeColor = System.Drawing.Color.Black;
NewTotalRow.BackColor = System.Drawing.Color.LightGray;
TableCell HeaderCell = new TableCell();
HeaderCell.Height = 10;
HeaderCell.HorizontalAlign = HorizontalAlign.Left;
HeaderCell.ColumnSpan = 4;
HeaderCell.Text = partner;
NewTotalRow.Cells.Add(HeaderCell);
GridView1.Controls[0].Controls.AddAt(e.Row.RowIndex + rowIndex, NewTotalRow);
}
protected void gvConcept_RowCreated(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
partner = DataBinder.Eval(e.Row.DataItem, "Partner").ToString();
if (ParAnt != partner)
{
AddNewRow(sender, e, e.Row.RowIndex+1);
ParAnt = DataBinder.Eval(e.Row.DataItem, "Partner").ToString();
}
}
}
第一行正確添加,但不能添加的下一個的人(在我的情況2)。 任何人輸入?謝謝。
你檢查過使用調試,什麼是e.Row.RowIndex和rowIndex第二次調用? –
'e.Row.RowIndex + 1'可以替換爲'e.Row.RowIndex' –