Использование объекта DataSource - PullRequest
0 голосов
/ 29 сентября 2011

Я пытаюсь использовать 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"/>

1 Ответ

2 голосов
/ 29 сентября 2011

Вставьте метод выбора в DataController, скажите 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

В качестве альтернативы вы можете использовать событие OnDataBinding объекта ObjectDataSource для программной установки параметров непосредственно в экземпляре ObjectDataSource.

...