我采用access数据库,使用很麻烦,SQL语句很多不支持 !
access支持not in 语句,也可以top 1 ,但是不支持top 0 ,所以第一面的话有点麻烦
另外,我想干脆用DataGrid自带的分页功能(不使用自定义分页),但是点击下一页按钮或者数码页,却没有任何反应!!请哪位大侠指点这是为什么或者提供一个更好的方案!
access支持not in 语句,也可以top 1 ,但是不支持top 0 ,所以第一面的话有点麻烦
另外,我想干脆用DataGrid自带的分页功能(不使用自定义分页),但是点击下一页按钮或者数码页,却没有任何反应!!请哪位大侠指点这是为什么或者提供一个更好的方案!
{
protected System.Web.UI.WebControls.Label TotalRecord;
protected System.Web.UI.WebControls.Label TotalPage;
protected System.Web.UI.WebControls.Label PageNo;
protected System.Web.UI.WebControls.LinkButton Back;
protected System.Web.UI.WebControls.TextBox JumpPage;
protected System.Web.UI.WebControls.DataGrid DG_Report;
protected System.Web.UI.WebControls.LinkButton Next;
protected System.Web.UI.WebControls.Button BT_Search;
protected System.Web.UI.WebControls.ImageButton Jump;
protected System.Web.UI.WebControls.TextBox TB_Key; string cmStr = "SELECT ID, Title,Publictime "+
"FROM Casus "+
"ORDER BY Publictime DESC"; private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
BindGrid();
}
} #region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器
/// 修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.BT_Search.Click += new System.EventHandler(this.BT_Search_Click);
this.DG_Report.DeleteCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DG_Report_DeleteCommand);
this.DG_Report.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.DG_Report_ItemDataBound);
this.Back.Click += new System.EventHandler(this.Back_Click);
this.Next.Click += new System.EventHandler(this.Next_Click);
this.Jump.Click += new System.Web.UI.ImageClickEventHandler(this.Jump_Click);
this.Load += new System.EventHandler(this.Page_Load); }
#endregion //数据绑定
private void BindGrid()
{
DataOperate dp = new DataOperate("CnStr");
SqlDataAdapter da = new SqlDataAdapter(cmStr,dp.Cn);
DataSet ds = new DataSet();
da.Fill(ds, "TradeNews");
DG_Report.DataSource = ds.Tables["TradeNews"].DefaultView;
DG_Report.DataBind();
TotalRecord.Text = ds.Tables["TradeNews"].Rows.Count.ToString();
PageFooter();
} //页数、第几页统计显示
private void PageFooter()
{
TotalPage.Text="共:"+DG_Report.PageCount+"页";
int PageNum = DG_Report.CurrentPageIndex + 1;
PageNo.Text="当前第: "+PageNum.ToString()+" 页";
JumpPage.Text = PageNum.ToString();
} //上一页
private void Back_Click(object sender, System.EventArgs e)
{
if(DG_Report.CurrentPageIndex <= 0)
Response.Write("<script>alert('已是第一页!');</script>");
else
{
DG_Report.CurrentPageIndex -= 1;
BindGrid();
int PageNum = this.DG_Report.CurrentPageIndex + 1;
this.JumpPage.Text = PageNum.ToString();
}
} //下一页
private void Next_Click(object sender, System.EventArgs e)
{
if(DG_Report.CurrentPageIndex >= DG_Report.PageCount-1)
Response.Write("<script>alert('已到最后一页!');</script>");
else
{
DG_Report.CurrentPageIndex += 1;
BindGrid();
int PageNum = this.DG_Report.CurrentPageIndex + 1;
this.JumpPage.Text = PageNum.ToString();
}
} //转到第几页
private void Jump_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{
Regex digitregex = new Regex(@"^[0-9]\d*[.]?\d*$");
if (!digitregex.IsMatch(JumpPage.Text))
{
JumpPage.Text="";
Response.Write("<script>alert('只能输入数字!');</script>");
}
else
{
int js;
js=Convert.ToInt32(JumpPage.Text.ToString())-1;
if (js>DG_Report.PageCount-1)
{
Response.Write("<script>alert('输入的数值要在总页数范围之内!');</script>");
}
else if(js<0)
{
Response.Write("<script>alert('输入的数值要在总页数范围之内!');</script>");
}
else
{
DG_Report.CurrentPageIndex=js;
BindGrid();
}
}
} //绑定
private void DG_Report_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if(e.Item.ItemIndex > -1)
e.Item.Cells[2].Text = Convert.ToString(Convert.ToInt32(DG_Report.CurrentPageIndex)*15 + e.Item.ItemIndex + 1);
e.Item.Cells[6].Attributes.Add("onclick", "if(confirm('您确信要删除吗?')){}else{return false}");
} //删除域名
private void DG_Report_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
TradeNews TNews = new TradeNews();
TNews.ID = Convert.ToInt32(e.Item.Cells[1].Text);
try
{
TNews.Delete();
Response.Write("<script>alert('删除成功!');</script>");
BindGrid();
}
catch(Exception ex)
{
Response.Write("<script>alert('"+ex.Message+"');</script>");
}
} //搜索
private void BT_Search_Click(object sender, System.EventArgs e)
{
DG_Report.CurrentPageIndex = 0; string keyword = this.TB_Key.Text.Trim(); cmStr = "SELECT ID, Title,Publictime "+
"FROM Casus "+
"WHERE KeyWords like '%"+keyword+"%' "+
"ORDER BY Publictime DESC";
BindGrid();
}
}
}
<FONT face="宋体">
<table cellSpacing="0" cellPadding="0" width="100%" border="0">
<TBODY>
<tr>
<td align="left">请输入关键字:
<asp:TextBox id="TB_Key" runat="server"></asp:TextBox>
<asp:Button id="BT_Search" runat="server" Text="搜索"></asp:Button></td>
</tr>
<tr>
<td height="10"></td>
</tr>
<tr>
<td><asp:datagrid id="DG_Report" AllowPaging="True" PageSize="15" Width="100%" AutoGenerateColumns="False"
runat="server">
<AlternatingItemStyle BackColor="WhiteSmoke"></AlternatingItemStyle>
<HeaderStyle BackColor="#CCCCCC"></HeaderStyle>
<Columns>
<asp:TemplateColumn>
<HeaderStyle HorizontalAlign="Center"></HeaderStyle>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
<ItemTemplate>
<IMG height="13" src="../images/14.gif" width="13">
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn Visible="False" DataField="ID">
<HeaderStyle HorizontalAlign="Center"></HeaderStyle>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
</asp:BoundColumn>
<asp:BoundColumn HeaderText="序号">
<HeaderStyle HorizontalAlign="Center"></HeaderStyle>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
</asp:BoundColumn>
<asp:HyperLinkColumn Target="_blank" DataNavigateUrlFormatString="{0}" DataTextField="Title" HeaderText="标题">
<HeaderStyle HorizontalAlign="Center"></HeaderStyle>
<ItemStyle HorizontalAlign="Left"></ItemStyle>
</asp:HyperLinkColumn>
<asp:BoundColumn DataField="Publictime" HeaderText="发布日期" DataFormatString="{0:d}">
<HeaderStyle HorizontalAlign="Center"></HeaderStyle>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
</asp:BoundColumn>
<asp:HyperLinkColumn Text="编辑" DataNavigateUrlField="ID" DataNavigateUrlFormatString="../Admin/Admin_Casus.aspx?Action=Edit&ID={0}"
HeaderText="编辑" NavigateUrl="../Admin/Admin_Casus.aspx"></asp:HyperLinkColumn>
<asp:ButtonColumn Text="删除" HeaderText="删除" CommandName="Delete">
<HeaderStyle HorizontalAlign="Center"></HeaderStyle>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
</asp:ButtonColumn>
</Columns>
<PagerStyle Visible="False"></PagerStyle>
</asp:datagrid>
</FONT></TD></TR>
<TR>
<TD align="right"><FONT face="宋体">共有记录:
<asp:label id="TotalRecord" runat="server">Label</asp:label>条
<asp:label id="TotalPage" Width="74px" runat="server">共几页</asp:label><asp:label id="PageNo" Width="85px" runat="server">第几页</asp:label> <asp:linkbutton id="Back" runat="server" ForeColor="Blue" Font-Underline="True">前页</asp:linkbutton>
<asp:linkbutton id="Next" runat="server" ForeColor="Blue" Font-Underline="True">后页</asp:linkbutton>
跳转到第:<asp:textbox id="JumpPage" Width="40px" runat="server">1</asp:textbox>页
<asp:imagebutton id="Jump" runat="server" ImageUrl="../images/go1.gif"></asp:imagebutton></FONT></TD>
</TR>
</TBODY></TABLE></FONT>
{
dgbind();// 在此处放置用户代码以初始化页面
}private void dgbind()
{
dbmanage dbs=new dbmanage();
SqlConnection cn;
cn=dbs.GetConnection();
string strSql="select userid,username,coname,addtime,fag,isfree from hyuser order by addtime DESC";
DataSet ds;
ds=dbs.FillDs(strSql,cn);
DataGrid1.DataSource=ds.Tables[0].DefaultView;
try
{
this.DataGrid1.DataBind();
}
catch
{
if(this.DataGrid1.CurrentPageIndex>0)
{
this.DataGrid1.CurrentPageIndex = 0 ;
}
this.DataGrid1.DataBind();
}
cn.Close();
cn.Dispose();
}
private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
DataGrid1.CurrentPageIndex=e.NewPageIndex;
dgbind();
}
自已在创建几个按钮,然后写代码:主要是针对dataGrid的currpageIndex属性