2011-07-26 51 views
0

我有一個ASPX GridView和一個DetailsRow,我需要在展開的行上顯示一些信息,以及添加一些數據的機會。我現在的問題是在DetailsRow擴展時選擇正確的數據。這是我的模板代碼:ASPxGridView中的SQLDataSource - 通過Eval()注入數據

<Templates> 
     <DetailRow> 
      <asp:Repeater DataSourceID="ConversationsDataSource" runat="server"> 
      <ItemTemplate> 
      <p>Foobar</p> 
      </ItemTemplate> 
      </asp:Repeater> 
      <asp:SqlDataSource SelectCommand='SELECT Subject, Message FROM [Fedmekirurgi].[dbo].[MessageSystem.Message] WHERE ConversationID = @ID %>' 
         runat="server" ID="ConversationsDataSource" ConnectionString="<%$ ConnectionStrings:Fedmekirurgi %>"> 
      <SelectParameters> 
       <asp:Parameter Name="ID" Type="Int32" /> 
      </SelectParameters> 
      </asp:SqlDataSource> 
      <dx:ASPxMemo ID="ASPxMemo1" runat="server" Height="71px" Width="470px"> 
      </dx:ASPxMemo> 
     </DetailRow> 
    </Templates> 

我的問題是,我只爲我的生活不能得到注入到我的SqlDataSource相關的參數中。基本上,如果我可以這樣做:

    <asp:SqlDataSource SelectCommand='SELECT Subject, Message FROM [Fedmekirurgi].[dbo].[MessageSystem.Message] WHERE ConversationID = <%# Eval("ID") %>' 
         runat="server" ID="ConversationsDataSource" ConnectionString="<%$ ConnectionStrings:Fedmekirurgi %>"> 

它會滿足我的需求!因此,如何將從Eval()中獲得的數據「注入」到SqlDataSource中?

回答

3

不確定數據來自哪裏,但您可以選擇從QueryString,Cookie,Session,Form,Control,Route和Profile傳遞SQLDataSource中的參數。例如,以下是SQLDataSource從QueryString中選取它的方法:

<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
     ConnectionString="<%$ ConnectionStrings:ChinookConnectionString %>" 
     SelectCommand="SELECT [CustomerId], [FirstName], [LastName], [Country], [Phone], [Email] FROM [Customer] WHERE ([CustomerId] &gt;= @CustomerId)"> 
     <SelectParameters> 
      <asp:QueryStringParameter DefaultValue="0" Name="CustomerId" 
       QueryStringField="custid" Type="Int32" /> 
     </SelectParameters> 
    </asp:SqlDataSource> 

至於傳遞客戶端中的eval值,我不知道這是可能的,因爲SqlDataSource的是一個服務器控制(即RUNAT =服務器),並將其渲染之前結合於服務器側數據它爲客戶端瀏覽器。

對於法師細節,檢查出這些資源,它可以幫助你:

希望幫助,謝謝。

+0

謝謝!視頻確實有幫助!看起來很奇怪,你需要通過SessionParameter來做到這一點:/ – Fafnr

+0

沒問題,並且很高興你能夠正常工作。 :) – Mehul