0

私はasp.net 2.0を使用しています。宣言型データソースを使用しています。コード ビハインドの一部については、Foo.Bar によって返されるオブジェクトにアクセスする必要があります (次の例)。システムはそれをキャッシュしているので、Foo.Bar() を再呼び出しする代わりに、そのバージョンにアクセスできるはずです。どうすればいいですか?

<asp:ObjectDataSource ID="MyLuckDataSource1" runat="server" 
    TypeName="Foo.Bar" SelectMethod="GetMoreFoo" 
    CacheDuration="Infinite" CacheExpirationPolicy="Sliding" 
    EnableCaching="True">
    <SelectParameters>
        <asp:ControlParameter ControlID="BarID" Name="bar_code" Type="String" Direction="Input" DefaultValue="1011" />
    </SelectParameters>
</asp:ObjectDataSource>

<asp:GridView ID="GridView1" runat="server"  runat="server" DataSourceID="MyLuckDataSource1" ...
4

3 に答える 3

1

GridView の OnRowDataBound イベントを試してください。

と同じように:

protected void GridView2_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        var some = (Foo.SomeBar) e.Row.DataItem;
        somelabel.Text = some.Date.ToString();
    }
}

Ps。試してみると、私はそれが動作することを意味します:)

于 2009-03-05T21:58:17.487 に答える
0

e.ReturnValue プロパティを調べて、ObjectDataSource.Selected イベントでコレクションの結果をキャッチすることもできます。

protected void MyLuckDataSource1_Selected(object sender, ObjectDataSourceStatusEventArgs e)
{
    List<Foo> x = (List<Foo>)e.ReturnValue;

    // do whatever you need with the results here...
}
于 2009-03-23T20:21:18.143 に答える