PageRequestManagerServerErrorException

时间:2015-04-15 08:38:30

标签: asp.net gridview

我试图解决我没有创建的项目中的一些错误。但我无法找到问题的是:

  

错误:Sys.WebForms.PageRequestManagerServerErrorException:在服务器上处理请求时发生未知错误。从服务器返回的状态代码是:500

我有一个菜单,当我点击其中一个项目时,我想加载数据。

protected void menu_MenuItemClick(object sender, MenuEventArgs e)
{

List<extList> lstEH = ehs.getList(ll_id, e.Item.Value).ToList();

            if (lstEH.Count > 0)
            {
                btnExtern.Visible = false;
            }
            dvExtern.DataSource = lstEH;
            dvExtern.DataBind();
}

我想要的数据来自数据库,我为它调用服务。

public IQueryable<externeH> getList(int ll_id, string type)
        {
            try
            {
                queryE =
                    from eh in db.exth
                    from teh in db.types
                    from k in db.kla
                    where eh.TypesExterneHulp_id == teh.Id
                          && teh.Naam == type
                          && eh.ll_id == ll_id
                          && eh.Klas_id == k.Id
                    orderby eh.DatumBegin, eh.Uitleg descending
                    select eh;
            }
            catch
            {
                return null;
            }
            return queryE;
}

有时会运行,有时它不会运行。总是在点击第一个菜单项时。但是当我试图调试它时没有问题。没关系。

数据在gridview上绑定

<asp:GridView ID="dvExterneHulp" runat="server" AutoGenerateColumns="False" GridLines="None" AlternatingRowStyle-CssClass="odd" AllowPaging="true" CssClass="mGrid niceTable"
                                             OnRowDataBound="dvExterneHulp_DataBound"
                                            PagerStyle-CssClass="pgr" OnPageIndexChanging="gv_PageIndexChanging">

我在互联网上搜索,但可能有很多原因。我检查了&#34;帖子&#34;它得到了一个id。菜单项1的DB通常有2个结果。

编辑:我试图找出哪里出了问题。似乎它在dvExtern.Databind()行;更接近确切的问题..

编辑2:我不确定,但是当我有一个像1/01/0001 0:00:00这样的日期时会发生错误。在localhost上它始终为空(不在gridview中)。

问题是日期。 DB中的值为01/01/0001。但是如果想要运行这段代码,那似乎是一个问题。

protected void dvEH_DataBound(object sender,GridViewRowEventArgs e)
    {


            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                string datum = functies.converteerDatum(Convert.ToDateTime(e.Row.Cells[5].Text));
                if (datum == "01/01/1")
                {
                    e.Row.Cells[5].Text = "";
                }
                else
                {
                    e.Row.Cells[5].Text = datum;
                }
            }

1 个答案:

答案 0 :(得分:0)

问题是由无效的日期转换造成的。

我在转换日期之前用支票解决了它

if(e.Row.Cells[5].Text == "01/01/0001 00:00:00")
{
 //SHOW NOTHING
}
else
{
 //DO CONVERT
}