如何将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')"。
将QueryStringParameter直接传递到SelectParameters中,即:
<SelectParameters>
<asp:QueryStringParameter QueryStringField="id" />
</SelectParameters>
您可以在SelectParameters
部分中使用QueryStringParameter
<SelectParameters>
<asp:QueryStringParameter QueryStringField="id" Name="id"/>
</SelectParameters>