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

时间:2011-07-26 12:22:28

标签: asp.net devexpress eval sqldatasource aspxgridview

我有一个带有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中呢?

1 个答案:

答案 0 :(得分:3)

不确定数据的来源,但您可以选择从QueryString,Cookie,Session,Form,Control,Route和Profile传递SQLDataSource中的参数例如,这是SQLDataSource从QueryString中提取它:< / p>

    <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 = server)并且在为客户端呈现之前绑定了服务器端的数据浏览器。

对于Master-detail,请查看可以帮助您的这些资源:

希望有所帮助,谢谢。