出错的原因是你的分页方法里面少了一条语句
DataSet ds = GetCarList();
this.gdvCarList.DataSource = ds; 把绑定方法提取出来好一点。
private void Bind()
{
this.gdvCarList.DataSource = GetCarList();
gdvCarList.DataBind(); }在你的分页方法里面调用。
Bind()方法。
DataSet ds = GetCarList();
this.gdvCarList.DataSource = ds; 把绑定方法提取出来好一点。
private void Bind()
{
this.gdvCarList.DataSource = GetCarList();
gdvCarList.DataBind(); }在你的分页方法里面调用。
Bind()方法。
应该是引起的:
protected void gdvCarList_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
gdvCarList.PageIndex = e.NewPageIndex;
gdvCarList.DataBind();
} 因为你只给出了gdvCarList.DataBind();,有了绑定方法,你还的绑定数据源,我想应该是这样的,我一直这样做没有出现过问题
protected void gdvCarList_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
gdvCarList.PageIndex = e.NewPageIndex;
DataSet ds = GetCarList();
this.gdvCarList.DataSource = ds;
gdvCarList.DataBind();
}
DataSet ds = GetCarList();
this.gdvCarList.DataSource = ds;
还是报索引超出范围,真急啊:
gdvCarList.PageIndex = e.NewPageIndex;
gdvCarList.DataSource = ds;
gdvCarList.DataBind();
{
this.GridView1.DataSource = (DataSet)this.ViewState["ds"];
this.GridView1.DataBind();
}
private void Page_Load(.....,.....)
{
if(!Ispostback)
{
DataSet ds = new DataSet();
假设ds已经有了内容
.................
this.ViewState["ds"] = ds;
Bind();
}
}protected void gdvCarList_PageIndexChanging(...,....)
{
this.GridView1.PageIndex = e.NewPageIndex;
Bind();
}
remex 著于2007-9-6 9:02:56
ASP.NET 2.0中,Gridview取代了以前的datagrid控件,本文解释如何在Gridview控件中进行分页、排序以及添加按钮控件(控制其显示/隐藏)。
pulic void DataBound()
{
DataSet ds = GetCarList();
this.gdvCarList.DataSource = ds;
this.gdvCarList.DataBind();
}(2)分页代码
protected void gdvCarList_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
gdvCarList.PageIndex = e.NewPageIndex1;
DataBound() //调用上面的绑定方法
}
附:如果: gdvCarList.PageIndex = e.NewPageIndex1;出来的效果还是不对,那你用 gdvCarList.PageIndex = e.NewPageIndex1-1试下看看;
(3)
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
DataBound(); //调用上面的绑定方法
}
{
}
.cs文件:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
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;
using System.Data.SqlClient;
using MagicAjax;public partial class Sys_CarInfoList : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataSet ds = GetCarList();
this.gdvCarList.DataSource = ds; gdvCarList.DataBind();
}
}
protected void btnCarQry_Click(object sender, EventArgs e)
{
DataSet ds = GetCarList();
this.gdvCarList.DataSource = ds;
gdvCarList.DataBind(); }
protected DataSet GetCarList()
{
string strBeginTime = this.txtBeginDate.Text.ToString().Trim();
string strEndTime = this.txtEndDate.Text.ToString().Trim();
string strBrand = this.txtBrand.Text.ToString().Trim(); SqlConnection conn = new SqlConnection(ConfigurationManager.AppSettings["connectionString"].ToString());
SqlCommand cmd = new SqlCommand("SHOWCARLIST", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@BRAND", SqlDbType.VarChar)); cmd.Parameters.Add(new SqlParameter("@BEGINTIME", SqlDbType.VarChar));
cmd.Parameters.Add(new SqlParameter("@ENDTIME", SqlDbType.VarChar));
cmd.Parameters[0].Value = strBrand; cmd.Parameters[1].Value = strBeginTime;
cmd.Parameters[2].Value = strEndTime;
DataSet ds = new DataSet();
SqlDataAdapter sda = new SqlDataAdapter(cmd);
sda.Fill(ds);
return ds; }
protected void gdvCarList_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
gdvCarList.PageIndex = e.NewPageIndex;
DataSet ds = GetCarList();
this.gdvCarList.DataSource = ds;
gdvCarList.DataBind();
}
protected void gdvCarList_RowCommand(object sender, GridViewCommandEventArgs e)
{
switch (e.CommandName)
{
case "Detail":
Button btn = e.CommandSource as Button;
GridViewRow row = btn.Parent.Parent as GridViewRow; string strCarDtl = this.gdvCarList.DataKeys[row.DataItemIndex].Value.ToString().Trim();
//string strCarDtl = this.gdvCarList.Rows[row.DataItemIndex].Cells[1].Text.ToString().Trim();
Response.Redirect("/WebSys/Sys/CarInfoDetail.aspx?valueId=" + strCarDtl);
break;
case "Modify":
Button btnM = e.CommandSource as Button;
GridViewRow rowM = btnM.Parent.Parent as GridViewRow; string strCarMdy = this.gdvCarList.DataKeys[rowM.DataItemIndex].Value.ToString().Trim();
Response.Redirect("/WebSys/Sys/CarInfoUpdate.aspx?valueId=" + strCarMdy);
break;
case "Drop":
Button btnD = e.CommandSource as Button;
//btnD.Attributes.Add("onclick", "return confirm('你确定要删除所选择的数据项吗?');");
GridViewRow rowD = btnD.Parent.Parent as GridViewRow;
string strCarDel = this.gdvCarList.DataKeys[rowD.DataItemIndex].Value.ToString().Trim();
int intTmpDel = Convert.ToInt32(strCarDel);
DelItem(intTmpDel);
break;
default:
break;
}
}
protected void btnNew_Click(object sender, EventArgs e)
{
Response.Redirect("/WebSys/Sys/CarInfoInsert.aspx");
}
protected void DelItem(int intItemId)
{
//MagicAjax.AjaxCallHelper.Write("");
SqlConnection conn = new SqlConnection(ConfigurationManager.AppSettings["connectionString"].ToString());
string strDel = "delete salecarinfo where salecarinfo_id=" + intItemId;
SqlCommand cmd = new SqlCommand(strDel, conn);
conn.Open();
int intFlag = cmd.ExecuteNonQuery();
conn.Close();
//gdvCarList.DataBind(); if (intFlag > 0)
{
DataSet ds = GetCarList();
this.gdvCarList.DataSource = ds;
gdvCarList.DataBind(); }
else
{
MagicAjax.AjaxCallHelper.WriteAlert("删除失败!");
} } protected void gdvCarList_RowDataBound(object sender, GridViewRowEventArgs e)
{
//if (e.Row.RowType == DataControlRowType.DataRow)
//{
// //Button btn = e.Row.Cells[7].Controls[0] as Button;
// e.Row.Cells[7].Attributes.Add("onclick", "<script>return confirm('你确认要删除吗?');</script>"); //}
}
}
----------------------------------------------------------------.aspx文件:<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="CarInfoList.aspx.cs" Inherits="Sys_CarInfoList" Title="汽车信息列表" %><%@ Register Assembly="MagicAjax" Namespace="MagicAjax.UI.Controls" TagPrefix="ajax" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<ajax:AjaxPanel ID="AjaxPanel1" runat="server">
<table cellspacing="1" style="width: 600px" cellpadding="2">
<tr>
<td colspan="2" class="tdLeng">
<asp:GridView ID="gdvCarList" runat="server" Style="position: static" Width="600px" AutoGenerateColumns="False" AllowPaging="True" DataKeyNames="SALECARINFO_ID" OnPageIndexChanging="gdvCarList_PageIndexChanging" OnRowCommand="gdvCarList_RowCommand" OnRowDataBound="gdvCarList_RowDataBound">
<Columns>
<asp:TemplateField HeaderText="详情">
<ItemTemplate>
<asp:Button ID="btnGdvDetail" runat="server" CommandName="Detail" Style="position: static"
Text="查看" Width="60px" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="SALECARINFO_ID" HeaderText="ID" />
<asp:BoundField DataField="SHOP_COMPANY_NAME" HeaderText="所属商家" />
<asp:BoundField DataField="SALECARINFO_DENGJISHIJIAN" HeaderText="登记时间" DataFormatString="{0:yyyy-MM-dd}" HtmlEncode="False" />
<asp:BoundField DataField="BRAND_VEHICLE_BRAND" HeaderText="品牌" />
<asp:BoundField DataField="MODEL_NAME" HeaderText="车型" />
<asp:BoundField DataField="TYPE_NAME" HeaderText="车种" />
<asp:BoundField DataField="GRADE_NAME" HeaderText="型号" />
<asp:TemplateField HeaderText="修改">
<ItemTemplate>
<asp:Button ID="btnGdvEdit" runat="server" CommandName="Modify" Style="position: static"
Text="修改" Width="60px" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="删除">
<ItemTemplate>
<asp:Button ID="btnGdvDelete" runat="server" CommandName="Drop" Style="position: static"
Text="删除" Width="60px" OnClientClick="return confirm('您确认要删除吗?')" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</td>
</tr>
</table>
</td>
</tr>
</table>
</ajax:AjaxPanel>
</asp:Content>
case "Detail":
Button btn = e.CommandSource as Button;
GridViewRow row = btn.Parent.Parent as GridViewRow; string strCarDtl = this.gdvCarList.DataKeys[row.DataItemIndex].Value.ToString().Trim();
//string strCarDtl = this.gdvCarList.Rows[row.DataItemIndex].Cells[1].Text.ToString().Trim();
Response.Redirect("/WebSys/Sys/CarInfoDetail.aspx?valueId=" + strCarDtl);
break;