【问题标题】:Using Object DataSource使用对象数据源
【发布时间】:2011-09-29 14:34:51
【问题描述】:

我正在尝试使用 ObjectBindingSource 将数据绑定到网格视图。数据作为控制器的子类以模型的形式存在于视图中。

var _controller = new DataController(param1, param2);

你会以这种方式访问​​它

foreach(var Variable in _controller.DataModel.Cars)
<%: Car.Name %> ...

如何使用这个 DataModel.Cars 作为对象绑定源?

我现在有

<asp:ObjectDataSource ID="ObjectDataSource1" runat="server"  
        TypeName="Choices.ChoiceService.ChoiceCollection"  
        DataObjectTypeName="Choices.ChoiceService.ChoiceObject" 
        InsertMethod="Add" SelectMethod="AsReadOnly"/>

【问题讨论】:

    标签: c# asp.net data-binding gridview objectdatasource


    【解决方案1】:

    在 DataController 上插入一个 Select 方法说 GetCars 你会这样做:

    public class DataController
    {
       public IEnumerable<Car> GetCars(int param1, int param2)
       {
          return this.DataModel.Cars;
       }
    }
    

    然后你会使用:

    <asp:ObjectDataSource ID="ObjectDataSource1" runat="server"  
            TypeName="Choices.ChoiceService.DataController"  
            DataObjectTypeName="Choices.ChoiceService.Car" 
             SelectMethod="GetCars">
           <SelectParameters>
              <asp:SessionParameter Name="param1" SessionField="param1" />
              <asp:SessionParameter Name="param2" SessionField="param2" />
           </SelectParameters>
    </asp:ObjectDataSource>
    

    然后您在代码隐藏中设置会话:

    Session["param1"] = 12;
    Session["param2"] = 13;
    

    注意:有很多更好的方法可以做到这一点,像这样使用会话真的很难看,这只是一个例子。您可能可以从以下选择一个更好的 列表:

    http://msdn.microsoft.com/en-us/library/xt50s8kz.aspx

    您也可以使用 ObjectDataSource 的 OnDataBinding 事件以编程方式直接在 ObjectDataSource 实例上设置参数。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-30
    • 2011-04-27
    • 1970-01-01
    • 2010-11-05
    • 2011-05-13
    相关资源
    最近更新 更多