У меня есть пример небольшого примера со статьями и комментариями. Пользователи могут просматривать определенную статью, передавая значение идентификатора статьи в URL:Как передать параметр URL в ObjectDataSource SelectMethod?
http://localhost:56079/viewArticle.aspx?id=123456
Я хочу, чтобы идентификатор статьи, которые будут использоваться, чтобы найти соответствующие комментарии и заполнить GridView с ними в той же форме.
viewArticle.aspx:
<dx:ASPxGridView ID="ASPxGridView1" runat="server" AutoGenerateColumns="False" Width="100%" DataSourceID="ObjectDataSource1">
<Columns>
<dx:GridViewDataTextColumn FieldName="field1" Caption="Field #1" VisibleIndex="0" />
<dx:GridViewDataTextColumn FieldName="field2" Caption="Field #2" VisibleIndex="1" />
</Columns>
</dx:ASPxGridView>
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server"
SelectMethod="searchComments"
TypeName="App.CommentManager">
<SelectParameters>
</SelectParameters>
</asp:ObjectDataSource>
Если идентификатор будет "жестко" в методе searchComments, GridView заполняется с правильными записями.
Моя единственная проблема: перед отправкой статьи ID to searchComments.
Я думал о <% #%>»стиль привязки данных подхода, но было бы очень грязно, и она до сих пор не работает.
SelectMethod="searchComments(<%# Request.QueryString["id"] %>)"
Другой подход, который я попытался было установка selectmethod в коде следующим образом:
ObjectDataSource1.SelectMethod = "searchComments('123456')";
это приводит к ошибке: ObjectDataSource «ObjectDataSource1» не мог найти, не универсальный метод «searchComments ('123456') ', который не имеет параметров.
Мое предложение: не использовать DataSources на ASPX странице – Andrei