GridView的'GridView1'触发了未处理的事件PageIndexChanging

Jui*_*est 11 asp.net page-index-changed

我创造了:

  • 一个母版页和一个名为Detail的内容页.
  • 在按钮单击事件上,在网格视图中显示数据.
  • 在网格视图中,将自动生成列.
  • 我想在网格视图中显示11列,但它不仅仅是页面大小.

该怎么办?

我已经为数据库连接代码创建了sql helper文件并调用了该方法,而没有使用sqldatasource进行连接.

当我尝试进行分页时,收到错误:

GridView的'GridView1'触发了未处理的事件PageIndexChanging.

Ica*_*rus 22

您需要在代码后面声明一个处理PageIndexChanging事件的方法.

与此类似的东西:

protected void GridView1_PageIndexChanging (object sender, GridViewPageEventArgs  e)
{
    GridView1.PageIndex = e.NewPageIndex;
    bindGridView(); //bindgridview will get the data source and bind it again
}

private void bindGridView()
{
     GridView1.DataSource=getData();
     GridView1.DataBind();
}
Run Code Online (Sandbox Code Playgroud)

提供示例代码:

    protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        GridView1.PageIndex = e.NewPageIndex;
        bindGridView(); //bindgridview will get the data source and bind it again
    }

    protected void Page_Load(object sender , EventArgs e)
    {
        if(!IsPostBack)
         bindGridView();

    }
    //this is some sample data 
    private void bindGridView()
    {
        DataTable t = new DataTable();
        t.Columns.Add("Col1");
        t.Columns.Add("Col2");
        DataRow r = null;
        for (int i = 0; i < 25; i++)
        {
            r = t.NewRow();
            r.ItemArray = new object[] { "Val" + i, " Another " + i };
            t.Rows.Add(r);
        }
        GridView1.DataSource = t;
        GridView1.DataBind();
    }
Run Code Online (Sandbox Code Playgroud)

这是标记:

<asp:GridView OnPageIndexChanging="GridView1_PageIndexChanging" AllowPaging="true" PageSize="10" ID="GridView1" runat="server" AutoGenerateColumns="true">
Run Code Online (Sandbox Code Playgroud)

产生这个:

在此输入图像描述