在gridview上使用rowdatabound时的system.stackoverflowexception

时间:2017-08-25 20:40:34

标签: c# asp.net gridview stack-overflow rowdatabound

我不确定我是否在这里提出正确的问题,或者我是否提供了足够的信息,因为VS中的调试并没有给我任何帮助!

当我使用gridview运行我的asp.net webform页面时,它会导致system.stackoverflowexception。

这个GV有onPreRender和onRowDataBound事件监听器,我发现当我删除onRowDataBound时这个错误就消失了。

(简短地讲述了这个故事)我发现一行导致了这个问题:

e.Row.Cells[3].Text = "<i aria-hidden=true class=\"glyphicon glyphicon-unchecked text-danger\">";

现在我不知道为什么会导致这种异常。

原地代码:

protected void Gv_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            //SPR / Debrief
            if (e.Row.Cells[3].Text.Equals("True"))
            {
                e.Row.Cells[3].Text = "<i aria-hidden=true class=\"glyphicon glyphicon-check text-success\">";
                if (e.Row.Cells[4].Text.Equals("True"))
                {
                    e.Row.Cells[4].Text = "<i aria-hidden=true class=\"glyphicon glyphicon-flag text-danger\">";
                }
                else
                {
                    e.Row.Cells[4].Text = "";
                }
            }
            else
            {
                e.Row.Cells[3].Text = "<i aria-hidden=true class=\"glyphicon glyphicon-unchecked text-danger\">"; //THIS IS THE LINE OF INTEREST!
                e.Row.Cells[4].Text = "";
            }
        }
    }

调用
<asp:GridView CssClass="table" ID="GvPlacementReport" runat="server" OnPreRender="GvPlacementReport_PreRender" OnRowDataBound="Gv_RowDataBound" AutoGenerateColumns="false">
            </asp:GridView>

我也在页面上使用datatables.net(这太棒了!)和bootstrap(也很棒!)。

如果您需要更多代码,请告诉我 - 对不起我以前从来没有这样的事情!

0 个答案:

没有答案