private void dgItem_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
dgItem.CurrentPageIndex=e.NewPageIndex;
InitBind2();
}InitBind2();//为你ispostback中的内容
{
dgItem.CurrentPageIndex=e.NewPageIndex;
InitBind2();
}InitBind2();//为你ispostback中的内容
给个详细一点的说明可否?
急用
<FONT face="宋体" id="FONT1">
<asp:DataGrid id="dgItem" style="Z-INDEX: 101; LEFT: 98px; POSITION: absolute; TOP: 75px" runat="server" BorderColor="#CC9966" BorderStyle="None" BorderWidth="1px" BackColor="White" CellPadding="4" AllowPaging="True" PageSize="5">
<SelectedItemStyle Font-Bold="True" ForeColor="#663399" BackColor="#FFCC66"></SelectedItemStyle>
<ItemStyle ForeColor="#330099" BackColor="White"></ItemStyle>
<HeaderStyle Font-Bold="True" ForeColor="#FFFFCC" BackColor="#990000"></HeaderStyle>
<FooterStyle ForeColor="#330099" BackColor="#FFFFCC"></FooterStyle>
<PagerStyle HorizontalAlign="Center" ForeColor="#330099" BackColor="#FFFFCC" Mode="NumericPages"></PagerStyle>
</asp:DataGrid></FONT>
</form>
{
dgItem.CurrentPageIndex=e.Itme.ItemIndex;
databind();
}
当然,databind()需要你自己绑定了
这此的绑定和pageload里的绑定有什么区别么?
我把原来的复制过去,好像不行啊这是我的代码 private void dgItem_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
dgItem.CurrentPageIndex=e.NewPageIndex;
Response.Write("private void dgItem_PageIndexChanged called");
InitBind2();
}
void InitBind2() {
Response.Write("InitBind2() called");
SqlConnection cn = new SqlConnection(ConfigurationSettings.AppSettings["strConn"]);
cn.Open();
//DateTime now = DateTime.Today;
//temp.Text = temp.Text + now.Date.ToString();
string strSQL = "select * from T_item ";//where lx = %A%
SqlCommand cm = new SqlCommand (strSQL,cn);
SqlDataAdapter da = new SqlDataAdapter ();
da.SelectCommand = cm;
DataSet ds = new DataSet();
da.Fill(ds,"T_item");
dgItem.DataSource = ds;
dgItem.DataBind();
}点击之后并没有输出,好像没有调用啊
{
.......
this.DG.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.DG_PageIndexChanged);//这一句是将该过程绑定到事件中。
如果你是用IDE编程的话,直接在事件窗口中双击datagrid的PageIndexChanged事件。.....
}private void DG_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
DG.CurrentPageIndex = e.NewPageIndex;
//在此之前必须获取相应的数据。
DG.DataBind();
}
datagrid能够保持原有状态,但datagrid绑定时只获取该页的内容进行显示并保存这部分的信息,如果需要分页的话,这种信息就没有用处了。用存储过程处理分页,为什么要这么做?
DbDataAdapter.Fill Method (DataSet, Int32, Int32, String)的方法就可以指定填充的起始记录和最大记录数。
不过好使呀`?
可以分页的
{
UserData news = new UserData();
if(subclassid==0)
{
if(news.GetAllUserNews(classid))
{
for(int i =0;i<news.ds.Tables[0].Rows.Count;i++)
{
if(news.ds.Tables[0].Rows[i]["image"].ToString()=="")
{
news.ds.Tables[0].Rows[i]["image"]="/img/default.gif";
}
}
DataGrid1.DataSource = news.ds;
DataGrid1.DataBind();
}
}
else
{
if(news.GetAllUserNews(classid,subclassid))
{
for(int i =0;i<news.ds.Tables[0].Rows.Count;i++)
{
if(news.ds.Tables[0].Rows[i]["image"].ToString()=="")
{
news.ds.Tables[0].Rows[i]["image"]="/img/default.gif";
}
}
DataGrid1.DataSource = news.ds;
DataGrid1.DataBind();
}
}
}
{
DataGrid1.CurrentPageIndex=e.NewPageIndex;
this.databind();
}