.net分页心得

 

 
  
 
2007年11月12日 星期一 09:35
1.Server的命名空间

System.Web.HttpContext.Current.Server.MapPath("database/%29DB_Url_DataBase.mdb")

//Response的命名空间
System.Web.HttpContext.Current.Response.Cookies.Add(hk);


2.asp.net连接MDB类

DbClass.cs中的代码:

public static OleDbConnection DbConn()
{
     String dbname=System.Web.HttpContext.Current.Server.MapPath("database/%29DB_Url_DataBase.mdb");
     return new OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source="+dbname);
}

调用方法如下:
OleDbConnection conn=DbClass.DbConn();
conn.Open();


3.asp.net连接SQL类

DbClass.cs中的代码:

public static SqlConnection DbConn()
{
     return new SqlConnection("server=.;uid=sa;pwd=123;database=pubs;");
}

调用方法如下:
SqlConnection conn=DbClass.DbConn();
conn.Open();


4.<%# DataBinder.Eval(Container.DataItem,"Newscontent")%>的用法


DataBinder.Eval(Container.DataItem,"Newscontent","{0}")    等于 DataBinder.Eval(Container.DataItem,"Newscontent")

DataBinder.Eval(Container.DataItem,"Newscontent","{0:d}")


{0:d} 日期只显示年月日
{0:yyyy-mm-dd} 按格式显示年月日
{0:c} 货币样式
{0:G}代表显示True或False

((string)DataBinder.Eval(Container, "DataItem.P_SHIP_TIME_SBM8")).Substring(4,4)


5.Repeater分页代码

CS中的!

OleDbConnection conn=DbClass.DbConn();
conn.Open();
string sql = "Select * from news";
OleDbCommand cmd=new OleDbCommand(sql,conn);
OleDbDataAdapter ad = new OleDbDataAdapter();
ad.SelectCommand=cmd;
DataSet ds=new DataSet();
ad.Fill(ds,"news");

PagedDataSource objPds = new PagedDataSource();
objPds.DataSource = ds.Tables[0].DefaultView;
objPds.AllowPaging = true;
objPds.PageSize = 5;
int CurPage;
if (Request.QueryString["Page"] != null)
     CurPage=Convert.ToInt32(Request.QueryString["Page"]);
else
     CurPage=1;

objPds.CurrentPageIndex = CurPage-1;
lblCurrentPage.Text = "当前页:" + CurPage.ToString();

if (!objPds.IsFirstPage)
     lnkPrev.NavigateUrl=Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage-1);

if (!objPds.IsLastPage)
     lnkNext.NavigateUrl=Request.CurrentExecutionFilePath+ "?Page=" + Convert.ToString(CurPage+1);

Repeater1.DataSource=objPds;
Repeater1.DataBind();


ASPX中的


<asp:label ID="lblCurrentPage" runat="server"></asp:label>
<asp:HyperLink id="lnkPrev" runat="server">上一页</asp:HyperLink>
<asp:HyperLink id="lnkNext" runat="server">下一页</asp:HyperLink>



5.DataList如何在一行内显示多条记录


<asp:DataList id="DataList1" style="Z-INDEX: 101; LEFT: 112px; POSITION: absolute; TOP: 128px"     runat="server" RepeatColumns="3">
<ItemTemplate><%# DataBinder.Eval(Container.DataItem,"newstitle")%></ItemTemplate>
</asp:DataList>

注添加 RepeatColumns="3" 就搞定,一行显示3个记录


6.PagedDataSource 类的部分公共属性:


AllowCustomPaging 获取或设置指示是否启用自定义分页的值。
AllowPaging 获取或设置指示是否启用分页的值。
Count 获取要从数据源使用的项数。
CurrentPageIndex 获取或设置当前页的索引。
DataSource 获取或设置数据源。
DataSourceCount 获取数据源中的项数。
FirstIndexInPage 获取页中的第一个索引。
IsCustomPagingEnabled 获取一个值,该值指示是否启用自定义分页。
IsFirstPage 获取一个值,该值指示当前页是否是首页。
IsLastPage 获取一个值,该值指示当前页是否是最后一页。
IsPagingEnabled 获取一个值,该值指示是否启用分页。
IsReadOnly 获取一个值,该值指示数据源是否是只读的。
IsSynchronized 获取一个值,该值指示是否同步对数据源的访问(线程安全)。
PageCount 获取显示数据源中的所有项所需要的总页数。
PageSize 获取或设置要在单页上显示的项数。
VirtualCount 获取或设置在使用自定义分页时数据源中的实际项数。



7.DataList的分页(与Repeater一样)


CS中的!

OleDbConnection conn=DbClass.DbConn();
conn.Open();
string sql="Select * from news";
OleDbCommand cmd=new OleDbCommand(sql,conn);
OleDbDataAdapter ad=new OleDbDataAdapter();
ad.SelectCommand=cmd;
DataSet ds=new DataSet();
ad.Fill(ds,"news");
//this.DataList1.DataSource=ds.Tables["news"].DefaultView;
//this.DataList1.DataBind();

PagedDataSource objPds = new PagedDataSource();
objPds.DataSource = ds.Tables["news"].DefaultView;
objPds.AllowPaging = true;
objPds.PageSize = 15;
int CurPage;
if (Request.QueryString["Page"] != null)
CurPage=Convert.ToInt32(Request.QueryString["Page"]);
else
CurPage=1;

objPds.CurrentPageIndex = CurPage-1;
lblCurrentPage.Text = "当前页:" + CurPage.ToString();
//Label1.Text = "当前页:" + objPds.PageCount.ToString();
if (!objPds.IsFirstPage)
lnkPrev.NavigateUrl=Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage-1);

if (!objPds.IsLastPage)
lnkNext.NavigateUrl=Request.CurrentExecutionFilePath+ "?Page=" + Convert.ToString(CurPage+1);

this.DataList1.DataSource=objPds;
this.DataList1.DataBind();


ASPX中的


<asp:label ID="lblCurrentPage" runat="server"></asp:label>
<asp:HyperLink id="lnkPrev" runat="server">上一页</asp:HyperLink>
<asp:HyperLink id="lnkNext" runat="server">下一页</asp:HyperLink>


8.小技巧---可以把功能写成private void然后调用

private void Page_Load(object sender, System.EventArgs e)
     {
         // 在此处放置用户代码以初始化页面
         if(!Page.IsPostBack)
         {
         this.DataList_info();
         }
        
     }

private void DataList_info()
     {

     }



9.生成HttpCookie
HttpCookie的命名空间是:System.Web;

HttpCookie Cookies123 = new HttpCookie("newcookie");

Cookies123.Values["get_name"]="中国人民共和国";
Cookies123.Values["get_value"]="我的中国";
Response.Cookies.Add(Cookies123);


10.读出HttpCookie

HttpCookie get_cookies = Request.Cookies["newcookie"];
Response.Write("get_name:" + get_cookies.Values["get_name"] + "<br>");
Response.Write("get_value" + get_cookies.Values["get_value"]);


11如何用DataReader验证用户
public static bool GetLogin(string uid,string pwd)
         {
             try
             {
             OleDbConnection conn=DbClass.DbConn();
             conn.Open();
             string sql="select * from UnionUser where username='"+uid+"'";
             OleDbCommand cmd=new OleDbCommand(sql,conn);
             OleDbDataReader dr;
             dr=cmd.ExecuteReader();
                 if(dr.Read())
                 {
                 string UserPassword;
                 UserPassword = dr["userpassword"].ToString();
                     if(UserPassword==pwd)
                     {
                         //写入HttpCookie
                         HttpCookie hk=new HttpCookie("newcookie");
                         System.Web.HttpContext.Current.Response.Cookies.Add(hk);
                         Response.Cookies.Add(hk);
                     return true;
                     }
                     else
                     {
                     return false;
                     }
                 }
                 else
                 {
                 return false;
                 }
             conn.Close();
             }
             catch
             {
             return false;
             }
         }



12.获得控件内容

string uid=TextBox1.Text;
string pwd=TextBox2.Text;
uid=uid.ToString();
pwd=pwd.ToString();
uid=uid.Trim();
pwd=pwd.Trim();


13.Repeater中如何隐藏列

在page_load外定义
public bool get123
在page_load中赋值
get123=true;

<table Runat="server" Visible="<%#get123%>">
<tr>
<td>
<%#DataBinder.Eval(Container.DataItem,"newsid")%>
</td>
</tr>
</table>



14.DropDownList

         OleDbConnection conn=DbOperate.DbConn();
         conn.Open();
         string sql="select * from newstype";
         OleDbDataReader DR=DbOperate.Dr(conn,sql);
         this.DropDownList1.DataSource=DR;
         this.DropDownList1.DataTextField="NewsTypeName";
         this.DropDownList1.DataValueField="NewsTypeID";
         this.DropDownList1.DataBind();



15. datalist平均分配columns


RepeatDirection=Horizontal
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值