以编程方式将ASPxGridView添加到使用ObjectDataSource的页面

时间:2012-07-02 12:56:07

标签: c#-4.0 entity-framework-4 devexpress aspxgridview

我正在尝试将ASPxGridView添加到页面并以编程方式将其绑定到ObjectDataSource

这是我的代码:

protected void Page_Init(object sender, EventArgs e)
    {
        ObjectDataSource odsGroup = new ObjectDataSource();
        var gridLookup = new ASPxGridView();

        odsGroup.ID = "odsGroups";
        odsGroup.SelectMethod = "GetAllElements";
        odsGroup.TypeName = "Ifa.BusinessLayer.BLLClasses.GroupBll";
        odsGroup.OldValuesParameterFormatString = "original_{0}";

        gridLookup.ViewStateMode = ViewStateMode.Disabled;


        gridLookup.ID = "groupsLookup";
        gridLookup.AutoGenerateColumns = true;
        gridLookup.DataSource = odsGroup;
        gridLookup.KeyFieldName = "Id";
        gridLookup.DataBind();
        pnl1.Controls.Add(gridLookup);
    }

当我使用GridView代替ASPxGridView时,此代码可以正常使用,但正如我所说,它不适用于ASPxGridView并抛出System.Runtime.Serialization.SerializationException

异常: enter image description here

任何解决方案?

2 个答案:

答案 0 :(得分:2)

此问题可能与IIS的安全设置和相应的权限有关。 ASPxGridView在必要时从其缓存中反序列化数据行。通过将 ASPxGridView.EnableRowsCache 属性设置为“ False ”来禁用ASPxGridView的缓存。

答案 1 :(得分:0)

另一种解决方案:

  gridLookup.Columns.Add(new GridViewDataColumn("Name"));
  gridLookup.AutoGenerateColumns = false;