DataBind和Postback

时间:2009-05-06 19:09:34

标签: .net data-binding objectdatasource

这是一般的DataBind工作问题......

我有一个带有GridView的简单页面(在aspx代码中)绑定到ObjectDataSource。

我可以查看ObjectDataSource调用的Select()函数,看看它是在初始加载和每个回发时调用的。我有一些逻辑发生在post backs上会影响GridView的数据,我想稍后在帖子后面调用GridView.DataBind(),之后我做了一些更改。

有没有办法阻止每个帖子上发生的自动重新绑定?这是否意味着我不能将ObjectDataSource用于此控件?

3 个答案:

答案 0 :(得分:12)

你是正确的,你正在寻找的细粒度控制是不可能的,并且需要背后的代码。 ASP.NET的数据源对象只不过是a **的痛苦。当你使用它们时,你会发现这样的情况会一次又一次地出现。

你会发现的一些问题是:

  • 没有强烈打字
  • 不灵活(如你所知)
  • 捣乱演示文稿代码

我已经开始在后面的代码中进行所有数据访问,但没有回头。

答案 1 :(得分:9)

我也使用这种自动绑定进行战斗,并认为我在这里发布了我的解决方案:

  1. 从ASPX页面中删除“DataSourceID”,当它未设置时,没有自动绑定
  2. 仅在需要DataBinding时才在CodeBehind中设置DataSourceID:myGridView.DataSourceID =“MyDataSource”;
  3. 不显式调用myGridView.DataBind(),数据绑定在PreRender自动发生
  4. 我花了一些时间来弄明白这一点,但现在一切正常。

    <强>上下文

    我使用ObjectDatasource,因为它为我自动处理了Gridview的所有分页排序。我正在使用Linq2SQL的数据层并使用其Skip()和Take()方法仅加载填充GridView的一页所需的数据量。

    使用ObjectDataSource的 SelectMethod SelectCountMethod

答案 2 :(得分:2)

是。如果您希望在数据绑定发生时进行这种控制,则需要在后面的代码中执行此操作。