Asp.net ASPxGridView中的SQLDataSource-通过Eval()注入数据

Asp.net ASPxGridView中的SQLDataSource-通过Eval()注入数据,asp.net,devexpress,eval,sqldatasource,aspxgridview,Asp.net,Devexpress,Eval,Sqldatasource,Aspxgridview,我有一个带有DetailsRow的ASPX GridView,我需要在展开的行上显示一些信息,以及添加一些数据的机会。我现在的问题是在DetailsRow展开时选择正确的数据。这是我的模板代码: <Templates> <DetailRow> <asp:Repeater DataSourceID="ConversationsDataSource" runat="server"> <ItemTe

我有一个带有DetailsRow的ASPX GridView,我需要在展开的行上显示一些信息,以及添加一些数据的机会。我现在的问题是在DetailsRow展开时选择正确的数据。这是我的模板代码:

  <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中?

不确定该数据来自何处,但您可以选择从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>


  • 希望对您有所帮助,谢谢。

    不确定数据来自何处,但您可以选择从QueryString、Cookie、会话、表单、控件、路由和概要文件传递SQLDataSource中的参数。例如,以下是从QueryString获取数据的SQLDataSource:

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

  • 希望有帮助,谢谢。

    谢谢!视频真的很有帮助!您需要通过SessionParameter来执行此操作,这似乎很奇怪:/Thank!视频真的很有帮助!您需要通过SessionParameter执行此操作,这似乎很奇怪:/