Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
List 在GridView上启用以列表作为其数据源的页面索引_List_C# 4.0_Gridview - Fatal编程技术网

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();
    }