2010-05-10 58 views
0

我正在創建一個GridView/DetailsView頁面。我有一個顯示一堆行的網格,當選中一行時,它使用DetailsView來允許插入/更新。將DetailsView設置爲GridView的選定行

我的問題是鏈接這些的最佳方式是什麼?我不想再次訪問Web服務,我需要的所有數據都在選定的網格視圖行中。我基本上有2個獨立的數據源共享相同的「DataObjectTypeName」,第一個數據源檢索數據,另一個做CRUD。

將選定網格視圖行轉移到詳細信息視圖的最佳方法是什麼?我將不得不手動處理插入/更新事件並自己調用數據源?

有沒有辦法鏈接這兩個,所以他們使用相同的數據源?

<asp:GridView ID="gvDetails" runat="server" DataKeyNames="ID, Code" 
       DataSourceID="odsSearchData" > 
    <Columns> 
     <asp:BoundField DataField="RowA" HeaderText="A" SortExpression="RowA" /> 
     <asp:BoundField DataField="RowB" HeaderText="B" SortExpression="RowB" /> 
     <asp:BoundField DataField="RowC" HeaderText="C" SortExpression="RowC" /> 



    ....Code... 

<asp:DetailsView ID="dvDetails" runat="server" DataKeyNames="ID, Code" 
       DataSourceID="odsCRUD" GridLines="None" DefaultMode="Edit" AutoGenerateRows="false" 
       Visible="false" Width="100%"> 
     <Fields> 
      <asp:BoundField DataField="RowA" HeaderText="A" SortExpression="RowA" /> 
      <asp:BoundField DataField="RowB" HeaderText="B" SortExpression="RowB" /> 
      <asp:BoundField DataField="RowC" HeaderText="C" SortExpression="RowC" /> 

... 

回答

1

標準的方式做到這一點是有griview的選擇的項目是控制參數,你已經連入DetailsView的ObjectDataSource控件。我可能不會太擔心你已經擁有的檢索數據的開銷,除非你滿足那些想要避免不惜代價地往返於網絡服務器的緩慢連接的用戶。

如果你真的想避免這種情況,那麼你可以使用javascript/jquery將數據從gridview中提取出來,然後通過ajax調用進行插入/更新。這需要更多的編碼。

相關問題