我有一个asp页面,我正在使用gridview来显示一些东西。我有绑定到数据库中的表格的网格视图。问题是我想根据where子句过滤我显示的内容。GridView where where条款
<asp:LinqDataSource ID="ItemsDataSource" runat="server" ContextTypeName="Database.MyDataContext" TableName="ItemDetails" OnSelecting="ItemSourceSelecting" Where="ID == @ID" >
那么这里就是我的ItemSourceSelecting
protected void ItemSourceSelecting(object sender, LinqDataSourceSelectEventArgs e)
{
if (!IsPostBack)
e.WhereParameters.Add("ID", ID);
}
在页面加载时,我第一次去它这个伟大的工程。问题是我只在GridView中显示10个项目,然后在底部显示页码。当我尝试查看另一个页面时,它将数据库中的所有内容都带回来,并且不会调用ItemSourceSelecting。是否有另一个地方或方式我应该这样做,所以这不会发生?
编辑: 当我在LinqDataSource标记中硬编码Where =“ID == 1”时,它工作正常。它似乎应该在更改页面时调用ItemSourceSelecting,但它不是。不知何故,当页面被改变时,where子句将被抛弃。
是否有任何方法可以像控制一样将变量添加到中? –
thecaptain0220
2011-04-08 19:32:11