如何将URL参数传递给ObjectDataSource SelectMethod

本文关键字:ObjectDataSource SelectMethod 参数传递 URL | 更新日期: 2023-09-27 18:19:26

我有一个包含文章和注释的小示例应用程序。用户可以通过在URL:中传递文章ID值来查看特定文章

http://localhost:56079/viewArticle.aspx?id=123456

我希望文章id用于查找相应的评论,并以相同的形式填充网格视图。

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方法中的id是"硬编码"的,则gridview将填充正确的条目。

我唯一的问题是将文章id传递给searchComments方法。

  • 我在想一个<%#%>"风格的数据绑定方法,但它会非常脏,而且仍然不起作用

    SelectMethod="searchComments(<%# Request.QueryString["id"] %>)"
    
  • 我尝试的另一种方法是在codeehind中设置selectmethod,如下所示:

    ObjectDataSource1.SelectMethod = "searchComments('123456')";
    

    这导致错误:ObjectDataSource"ObjectDataSource1"找不到没有参数的非泛型方法"searchComments('123456')"。

如何将URL参数传递给ObjectDataSource SelectMethod

将QueryStringParameter直接传递到SelectParameters中,即:

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

您可以在SelectParameters部分中使用QueryStringParameter

    <SelectParameters>
            <asp:QueryStringParameter QueryStringField="id" Name="id"/>
    </SelectParameters>
相关文章:
  • 没有找到相关文章