如何通过QueryString筛选绑定到GridView控件的数据
本文关键字:GridView 控件 数据 绑定 何通过 QueryString 筛选 | 更新日期: 2025-02-18 02:07:47
我是一名新的ASP.NET Web Forms开发人员,现在我正在努力寻找根据QueryString值筛选数据的最佳方法将其绑定到GridView控件。我正在将GridView绑定到GetData()方法,我想在基于如果存在QueryString,则对QueryString的值执行那么我应该在BindGrid()方法或Page_Load()方法?我该怎么做
供您参考,GridView具有分页功能,如下面的代码所示。
以下是GetData()的C#代码:
public IEnumerable<Item> getData(Item itemObj)
{
List<Item> itemList = new List<Item>();
using (ATMSEntities context = new ATMSEntities())
{
itemList = (from item in context.Item
select new Item()
{
ItemId = item.ItemId,
Name = item.Name,
}).ToList();
if (itemObj.ItemId != 0)
{
itemList = itemList.Where(item => item.ItemId == itemObj.ItemId).ToList();
}
}
}
return itemList;
}
下面是带有GridView控件的aspx页面的代码:
protected void Page_Load(object sender, EventArgs e)
{
if(Request.QueryString["ItemId"] != null) //the filtration is not working here.
{
bindGrid();
}
}
private void bindGrid()
{
Item itemObj = new Item();
var result = itemObj.getData(itemObj).ToList();
gvItems.DataSource = itemObj.getData(itemObj);
gvItems.DataBind();
}
protected void gvItems_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
gvItems.PageIndex = e.NewPageIndex;
bindGrid();
}
提前感谢您的帮助。
您没有使用QueryString值来过滤列表项。你应该做的是这个
private void bindGrid()
{
Item itemObj = new Item();
if(Request.QueryString["ItemId"] != null)
{
itemObj.ItemId = Convert.ToInt32(Request.QueryString["ItemId"]);
}
var result = itemObj.getData(itemObj).ToList();
gvItems.DataSource = itemObj.getData(itemObj);
gvItems.DataBind();
}