我的RowDataBound上的System.ArgumentOutOfRangeException

时间:2018-12-05 09:22:19

标签: c# asp.net gridview datagridview

此代码返回错误“ System.ArgumentOutOfRangeException” 。我知道此错误,但是我的gridView有13列,并且我阅读了第2列和第4列,所以我不明白...

e.Row.Cells [0] 有效,因此我无法阅读其他列。

我在论坛上看了一下,但是找不到我的问题。通常,此问题是由于该人试图读取不存在的列而引起的,这不是我的情况。

    protected void grd_accident_RowDataBound(object sender, GridViewRowEventArgs e)
    {

        //Check CM
        if (e.Row.Cells[1].Text.Equals("false"))
        {
            e.Row.Cells[1].Text = "<span class='glyphicon glyphicon-remove' aria-hidden='true'></span>";
        }
        else
        {
            e.Row.Cells[1].Text = "<span class='glyphicon glyphicon-ok' aria-hidden='true'></span>";
        }

        ////Check HSE 
        if (e.Row.Cells[3].Text.Equals("2"))
        {
            e.Row.Cells[3].Text = "<span class='glyphicon glyphicon-remove' aria-hidden='true'></span>";
        }
        else
        {
            e.Row.Cells[3].Text = "<span class='glyphicon glyphicon-ok' aria-hidden='true'></span>";
        }
    }

如果有帮助,请访问我的gridView:

<asp:GridView ID="grd_accident" runat="server" CellPadding="4" AutoGenerateColumns="False"
            AllowPaging="True"
            CssClass="mGrid"
            PagerStyle-CssClass="pgr"
            AlternatingRowStyle-CssClass="alt" DataSourceID="ATP_rechercheRes" OnRowDataBound="grd_accident_RowDataBound" OnRowCommand="grd_accident_RowCommand">

            <AlternatingRowStyle CssClass="alt"></AlternatingRowStyle>

            <Columns>
                <asp:BoundField DataField="columna" HeaderText="Type" SortExpression="columna" />
                <asp:BoundField DataField="columnb" HeaderText="ID" ReadOnly="True" SortExpression="columnb" />
                <asp:BoundField DataField="columnc" ItemStyle-Width="90px" HeaderText="Date" SortExpression="columnc" />
                <asp:BoundField DataField="columnd" HeaderText="Heure" SortExpression="columnd" />
                <asp:BoundField DataField="columne" HeaderText="Nom" SortExpression="columne" />
                <asp:BoundField DataField="columnf" HeaderText="Prénom" SortExpression="columnf" />
                <asp:BoundField DataField="columng" HeaderText="Badge" SortExpression="columng" />
                <asp:BoundField DataField="columnh" HeaderText="Société" SortExpression="columnh" />
                <asp:BoundField DataField="columni" HeaderText="Description" SortExpression="columni" />
                <asp:BoundField DataField="columnj" ItemStyle-HorizontalAlign="Center" HeaderText="Code EPI" SortExpression="columnj" />
                <asp:BoundField DataField="columnk" ItemStyle-HorizontalAlign="Center" HeaderText="Advisor" SortExpression="columnk" />
                <asp:BoundField DataField="columnl" ItemStyle-HorizontalAlign="Center" HeaderText="HSE" SortExpression="columnl" />
                <asp:TemplateField ItemStyle-Width="130px">
                    <ItemTemplate>

                        <asp:ImageButton ID="btn_goToAccidentInfirmiere" ImageUrl="images/infirmerie.png" Width="37px" runat="server"
                            CommandName="goToAccidentInfirmiere"
                            CommandArgument="<%# ((GridViewRow) Container).RowIndex %>"
                            Text="Infirmière ►" />
                        <asp:ImageButton ID="btn_goToAccidentCm" ImageUrl="images/factory.png" Width="37px" runat="server"
                            CommandName="goToAccidentCm"
                            CommandArgument="<%# ((GridViewRow) Container).RowIndex %>"
                            Text="CM ►" />
                        <asp:ImageButton ID="btn_genRapport" ImageUrl="images/rapport.png" Width="37px" runat="server" CommandName="genRap"
                            CommandArgument="<%# ((GridViewRow) Container).RowIndex %>" />
                    </ItemTemplate>

                </asp:TemplateField>
            </Columns>

            <PagerStyle CssClass="pgr"></PagerStyle>

        </asp:GridView>

1 个答案:

答案 0 :(得分:0)

我找到了解决方案,我从GridView的属性中删除了AllowPaging =“ True”。现在可以使用