我正在尝试将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
异常:
任何解决方案?
答案 0 :(得分:2)
此问题可能与IIS的安全设置和相应的权限有关。 ASPxGridView在必要时从其缓存中反序列化数据行。通过将 ASPxGridView.EnableRowsCache 属性设置为“ False ”来禁用ASPxGridView的缓存。
答案 1 :(得分:0)
另一种解决方案:
gridLookup.Columns.Add(new GridViewDataColumn("Name"));
gridLookup.AutoGenerateColumns = false;