GridView
열을 수동으로 생성 할 때 문제가 있습니다. 내 프로그램은이 선에서 정지 :GridView.AutoGenerateColumns false 일 때 셀 번호 제한이 있습니까?
e.Row.Cells[42].Text = "x";
과 아래의 오류가 발생합니다 :
"Specified argument was out of the range of valid values. Parameter name: index Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values. Parameter name: index"
내 HTML 코드는 다음과 같습니다
<div class="scrolling-container">
<br/>
<asp:GridView EnableSortingAndPagingCallbacks="true" ID="StationGridView" runat="server"
GridLines="None" CellSpacing="1" AlternatingRowStyle-Wrap="false"
Font-Names="tahoma" Font-Size="14px" CellPadding="3"
AllowSorting="True"
ViewStateMode="Disabled" EnableViewState="false"
AllowPaging="True" PageSize="15" dir="rtl" Width="100%"
OnRowDataBound="StationGridView_RowDataBound">
<HeaderStyle BackColor="#d7effd" Font-Bold="true" ForeColor="Navy" Font-Size="12px" Font-Underline="false" />
<FooterStyle BackColor="#d7effd" Font-Bold="true" ForeColor="Navy"
VerticalAlign="Middle" HorizontalAlign="Center" Font-Size="16px" />
<AlternatingRowStyle BackColor="#c0c0c0" ForeColor="#000000" Height="25px" />
</asp:GridView>
</div>
내 소스 코드는 다음과 같습니다
protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsPostBack == false)
{
Initialize();
}
//Load data
PortalDataSetTableAdapters.VW_StationTableAdapter stationsAdapter = new PortalDataSetTableAdapters.VW_StationTableAdapter();
PortalDataSet.VW_StationDataTable Station;
Station = stationsAdapter.GetData();
StationGridView.DataSource = Station;
StationGridView.AutoGenerateColumns = true;
StationGridView.DataBind();
}
}
protected void StationGridView_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.Header)
{
e.Row.Cells[0].Text = "a";
e.Row.Cells[1].Text = "b";
e.Row.Cells[2].Text = "c";
.
.
e.Row.Cells[42].Text = "x";
e.Row.Cells[43].Text = "x";
e.Row.Cells[44].Text = "x";
}
}
을
마비 어쩌면 세포가 42 번 이상 (정확히 e.Row.Cells[42].Text = "x";
라인에 있음) 오류가 발생합니다. 왜 이런 일이 발생합니까?
그 행에 42 개의 셀만 있기 때문에 (41 + 0 행, 42가됩니까?)? 그 행에 42 개 이상의 세포가 있다고 생각하는 이유는 무엇입니까? – Draken