2011-09-29 39 views
-1

我想用ObjectBindingSource綁定數據到一個gridview。數據以模型的形式作爲控制器的子類出現在視圖中。使用對象DataSource

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"/> 

回答

2

插入一個選擇方法上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

或者您可以使用ObjectDataSource控件的OnDataBinding事件以編程方式直接設置參數對ObjectDataSource控件實例。

+0

謝謝,任何想法如何在參數中傳遞? –

+1

是的,你在這裏有一些選擇...檢查此:http://msdn.microsoft.com/en-us/library/xt50s8kz.aspx – Luis

+0

謝謝,非常有用 –

相關問題