List 在GridView上启用以列表作为其数据源的页面索引
我想在从列表创建的网格视图上启用页面索引 列表如下所示List 在GridView上启用以列表作为其数据源的页面索引,list,c#-4.0,gridview,List,C# 4.0,Gridview,我想在从列表创建的网格视图上启用页面索引 列表如下所示 public class SearchResults { public string fname { get; set; } public string mname { get; set; } public string lname { get; set; } } 我通过以下方法将数据添加到此列表和GridView: SearchResults result= new Se
public class SearchResults
{
public string fname { get; set; }
public string mname { get; set; }
public string lname { get; set; }
}
我通过以下方法将数据添加到此列表和GridView:
SearchResults result= new SearchResults();// Class Variable
Void Search()
{
result.fname="John";
result.mmane="Cody";
result.lmane="lname";
SearchResults.Add(result);
Gridview1.DataSource=result;
Gridview1.DataBnd();
}
因为,我想为这个页面启用分页索引,所以我为它创建了一个事件,如下代码所示
protected void On_PageIndexChanging(Object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
Gridview1.DataSource=result;
Gridview1.DataBnd();
}
即使在页面索引事件中绑定gridview之后,它也无法工作
你知道会发生什么吗?有人能解释一下如何将列表结果绑定到网格视图页面索引吗
谢谢。您可以使用以下代码:
public class SearchResults
{
public string fname { get; set; }
public string mname { get; set; }
public string lname { get; set; }
}
在.aspx页面中按如下方式设置标记:
<asp:GridView runat="server" ID="Gridview1" AllowPaging="True" OnPageIndexChanging="PageIndexChanging" PageSize="4">
</asp:GridView>
在代码隐藏(.aspx.cs)中编写以下代码:
受保护的无效页面加载(对象发送方,事件参数e)
{
如果(!IsPostBack)
{
//获取搜索列表并使用网格绑定数据
这是Search();
}
}
私有无效搜索()
{
var searchResults=新列表();
var search=新的搜索结果{fname=“John”};
搜索结果。添加(搜索);
search=新的搜索结果{fname=“John2”};
搜索结果。添加(搜索);
search=新的搜索结果{fname=“Micheal”};
搜索结果。添加(搜索);
search=新的搜索结果{fname=“Sara”};
搜索结果。添加(搜索);
search=新的搜索结果{fname=“Jenne”};
搜索结果。添加(搜索);
search=新的搜索结果{fname=“Mac”};
搜索结果。添加(搜索);
this.Gridview1.DataSource=搜索结果;
this.Gridview1.DataBind();
}
受保护的无效页面索引交换(对象发送方,GridViewPageEventArgs e)
{
this.Gridview1.PageIndex=e.NewPageIndex;
这是Search();
}
所有变量都在页面生命周期结束时处理。您必须在分页(或排序等)后重新加载数据源。另一个选项是将其存储在会话
变量中。但是,只有当web应用程序是用户很少的intranet应用程序时,我才会使用这种方法。当我更改索引时,我是否需要重新加载页面?你能给我的代码举个例子吗?
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
// Get list of search and bind data with Grid
this.Search();
}
}
private void Search()
{
var searchResults = new List<SearchResults>();
var search = new SearchResults { fname = "John" };
searchResults.Add(search);
search = new SearchResults { fname = "John2" };
searchResults.Add(search);
search = new SearchResults {fname = "Micheal" };
searchResults.Add(search);
search = new SearchResults { fname = "Sara" };
searchResults.Add(search);
search = new SearchResults { fname = "Jenne" };
searchResults.Add(search);
search = new SearchResults { fname = "Mac" };
searchResults.Add(search);
this.Gridview1.DataSource = searchResults;
this.Gridview1.DataBind();
}
protected void PageIndexChanging(object sender, GridViewPageEventArgs e)
{
this.Gridview1.PageIndex = e.NewPageIndex;
this.Search();
}