我正在尝试使用ObjectBindingSource将数据绑定到gridview。数据以模型的形式作为控制器的子类出现在视图中。
var _controller = new DataController(param1, param2);
你会以这种方式访问它
foreach(var Variable in _controller.DataModel.Cars)
<%: Car.Name %> ...
如何使用此DataModel.Cars作为Object绑定源的源?
我目前有
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server"
TypeName="Choices.ChoiceService.ChoiceCollection"
DataObjectTypeName="Choices.ChoiceService.ChoiceObject"
InsertMethod="Add" SelectMethod="AsReadOnly"/>
答案 0 :(得分:2)
在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实例上设置参数。