2013-06-21 5 views
0

У меня есть пример небольшого примера со статьями и комментариями. Пользователи могут просматривать определенную статью, передавая значение идентификатора статьи в 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') ', который не имеет параметров.

+0

Мое предложение: не использовать DataSources на ASPX странице – Andrei

ответ

1

Проходят QueryStringParameter непосредственно в SelectParameters - то есть:

  <SelectParameters> 
       <asp:QueryStringParameter QueryStringField="id" /> 
      </SelectParameters> 
1

Вы можете использовать QueryStringParameter в SelectParameters разделе

<SelectParameters> 
      <asp:QueryStringParameter QueryStringField="id" Name="id"/> 
    </SelectParameters>