Default.aspx代码如下:
<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>GridView实现跨页多选</title>
    <script type="text/javascript">
        function AddRemoveValues(oChk) 
        { 
            //在处理这个地方需要注意的是:你保存的值应该具有唯一性,这样才能不会替换错误的项。
            if(oChk.checked)
                document.getElementById("HdnSelectedValues").value += "," + oChk.value; 
            else
                document.getElementById("HdnSelectedValues").value = document.getElementById("HdnSelectedValues").value.replace("," + oChk.value,""); 
        }
</script>
</head>
<body>
    <form id="form1" runat="server">
        <table align="center" border="1">
            <tr>
                <td align="center">
                    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CellPadding="4" ForeColor="#333333" GridLines="None" AllowPaging="True" OnPageIndexChanging="GridView1_PageIndexChanging" OnRowCreated="GridView1_RowCreated" OnRowDataBound="GridView1_RowDataBound">
                        <FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
                        <RowStyle BackColor="#FFFBD6" ForeColor="#333333" />
                        <SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" />
                        <PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Center" />
                        <HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
                        <AlternatingRowStyle BackColor="White" />
                        <Columns>
                            <asp:TemplateField HeaderText="选择">
                                <ItemTemplate>
                                    <input type="checkbox" runat="server" id="chkSelect" onclick="AddRemoveValues(this)" value='<%# DataBinder.Eval(Container.DataItem,"id")%>'/>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:BoundField DataField="id" HeaderText="文章编号" />
                            <asp:BoundField DataField="Title" HeaderText="文章标题" />
                            <asp:BoundField DataField="CreateDate" HeaderText="文档创建时间" />
                        </Columns>
                    </asp:GridView>
                </td>
            </tr>
            <tr>
                <td align="center">
                    <asp:Button ID="Button1" runat="server" Text="显示选中项的ID" OnClick="Button1_Click" />
                </td>
            </tr>
            <tr>
                <td align="center">
                    <asp:TextBox ID="HdnSelectedValues" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td align="left">
                    <asp:label id="Label1" runat="server"></asp:label>
                </td>
            </tr>
        </table>
    </form>
</body>
</html>Default.aspx.cs代码如下:
using System;
using System.Data;
using System.Data.OleDb;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            GridViewDataBind();
        }
    }    protected void GridViewDataBind()
    {
        OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("aspx.mdb"));
        OleDbDataAdapter oda = new OleDbDataAdapter("SELECT id,Title,CreateDate from Document", conn);
        DataSet ds = new DataSet();
        oda.Fill(ds);
        GridView1.DataSource = ds;
        GridView1.DataBind();
    }    protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        GridView1.PageIndex = e.NewPageIndex;
        GridViewDataBind();
    }    protected void Button1_Click(object sender, EventArgs e)
    {
        // 为了方便显示,将隐藏域的“,”替换为“<li>”标记
        Label1.Text = HdnSelectedValues.Text.Replace(",", "<li>");
    }    protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
    {
        if (HdnSelectedValues.Text != "")
        {
            //重新显示所选择的项目
            if (HdnSelectedValues.Text.IndexOf(e.Row.Cells[1].Text) >= 0)
            {
                HtmlInputCheckBox ChkSelected = (HtmlInputCheckBox)(e.Row.Cells[0].FindControl("ChkSelect"));
                ChkSelected.Checked = true;
            }
        }
    }
}当执行到protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)事件时,e.Row.Cells[1]数组下标越界,请问大家怎么回事?