为什么提示“Invalid CurrentPageIndex value. It must be >= 0 and < the PageCount”
我用datagrid实现添加删除分页操作,但每次删除第二页的第一条记录就出现这个提示,请指教
代码如下:
<% @ Import Namespace="System.Data" %>
<% @ Import Namespace="System.Data.SqlClient" %>
<Script Language= "C#" Runat= "Server">
void Page_Load(Object src,EventArgs e)
{
if (!IsPostBack)
bindgrid();
}
void bindgrid()
{
string strProvider="server=localhost;uid=sa;pwd=;database=admin";
SqlConnection myConnection=new SqlConnection(strProvider);
//string mySelectQuery = "select id1 as 编号,name as 姓名 from admin ";
string mySelectQuery = "select * from admin ";
SqlDataAdapter myCommand=new SqlDataAdapter(mySelectQuery,myConnection);
DataSet ds=new DataSet();
myCommand.Fill(ds,"admin");
datagrid1.DataSource=ds.Tables["admin"];
datagrid1.DataBind();
}
void search_click(object src,EventArgs e)
{
//String str="select id1 as 编号,name as 姓名 from admin where id1='"+id1.Text+"'";
String str="select * from admin where id1='"+id1.Text+"'";
SqlConnection conn=new SqlConnection("server=localhost;pwd=;uid=sa;database=admin");
SqlDataAdapter cmd=new SqlDataAdapter(str,conn);
DataSet ds=new DataSet();
cmd.Fill(ds,"admin");
datagrid1.DataSource=ds.Tables["admin"];
datagrid1.DataBind();
}
void add_click(object src,EventArgs e)
{
String str="insert into admin(id1,name) values(@id,@name)";
SqlConnection conn=new SqlConnection("server=localhost;pwd=;uid=sa;database=admin");
SqlCommand cmd=new SqlCommand(str,conn);
cmd.Parameters.Add(new SqlParameter("@id",SqlDbType.Char,10));
cmd.Parameters["@id"].Value=id2.Text;
cmd.Parameters.Add(new SqlParameter("@name",SqlDbType.Char,10));
cmd.Parameters["@name"].Value=name.Text;
cmd.Connection.Open();
cmd.ExecuteNonQuery();
conn.Close();
bindgrid();
}
void page_index(object sender,DataGridPageChangedEventArgs e)
{
datagrid1.CurrentPageIndex=e.NewPageIndex;
bindgrid();
}
void datagrid1del(object sender,DataGridCommandEventArgs e)
{
SqlConnection conn=new SqlConnection("server=localhost;uid=sa;pwd=;database=admin");
String str="delete from admin where id1=@id1";
SqlCommand cmd=new SqlCommand(str,conn);
cmd.Parameters.Add(new SqlParameter("@id1",SqlDbType.Char,10));
cmd.Parameters["@id1"].Value=datagrid1.DataKeys[(int)e.Item.ItemIndex];
try{
cmd.Connection.Open();
cmd.ExecuteNonQuery();
Message.Style["color"]="blue";
Message.InnerHtml="数据删除成功";
conn.Close();
bindgrid();
}
catch(Exception ee)
{
throw ee;
}
}
</script>
<html>
<head>
</head>
<body>
<form runat=server>
<span id="Message" EnableViewState="false" style="font: arial 11pt;" runat="server" />
<asp:datagrid id=datagrid1 runat=server allowpaging=true pagesize=10 pagestyle-mode=numericpages OnPageIndexChanged=page_index backcolor="#f4fff4" bordercolor="black" cellspacing=0 cellpadding=0 headerstyle-backcolor="#aaaadd" width=200 PagerStyle-Mode="NumericPages" OnDeleteCommand=datagrid1del DataKeyField=id1 PagerStyle-PageButtonCount = 2>
<Columns>
<asp:ButtonColumn Text="删除" headertext="删除" CommandName=delete />
</Columns>
</asp:datagrid>
<asp:textbox id=id1 runat=server/><br>
<asp:button id=search onclick=search_click Text="查询" runat=server/><br>
<asp:textbox id=id2 runat=server/><br>
<asp:textbox id=name runat=server/><br>
<asp:button id=add onclick=add_click Text="添加" runat=server/>
</form>
</body>
</html>