?? qa.aspx
字號:
<%@ Page Language="C#" Debug="true" %>
<%@ Assembly Name="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System" %>
<html><head>
<title>簡易Q&A</title>
<script language="C#" runat="server" >
int startIndex;
void Page_Load(Object Src, EventArgs E)
{
//檢查該頁面是否第一次被裝載
if(!IsPostBack)
{
//使用 Binding 的方法
Binding() ;
}
}
public void Binding()
{
//ACCESS數據庫的連接字符串
string strConn=@"Provider=Microsoft.Jet.OLEDB.4.0 ;Data Source=";
strConn+=Server.MapPath(".\\database\\qa.mdb");
//生成一個新的連接
OleDbConnection myConn = new OleDbConnection(strConn) ;
string strCom;
//檢查該頁面是否第一次被裝載
if(!IsPostBack)
{
//設置變量的初始值
startIndex =0;
//查詢字符串
strCom = "SELECT TOP 1 postid FROM newpost ORDER BY postid DESC" ;
//生成一個查詢命令
OleDbCommand countCommand = new OleDbCommand(strCom, myConn);
//打開連接
myConn.Open();
//生成一個 DataReader
OleDbDataReader countReader = countCommand.ExecuteReader();
//檢查是否 DataReader 中有記錄
if(!countReader.Read())
{
//如果沒有記錄存在,設置一個虛擬計數
DataGrid1.VirtualItemCount=0;
}
else
{
//設置虛擬計數的總數
DataGrid1.VirtualItemCount= countReader.GetInt32(0);
}
//關閉連接
myConn.Close();
}
//設置顯示的記錄為20條
strCom = "SELECT TOP 20 postid ,subject ,name ,replies ,views ,dt FROM newpost ";
strCom+= "WHERE postid < "+(DataGrid1.VirtualItemCount-(startIndex-1) );
strCom+=" ORDER BY postid DESC" ;
OleDbCommand forumCommand = new OleDbCommand(strCom, myConn);
myConn.Open();
OleDbDataReader forumReader = forumCommand.ExecuteReader();
//設置數據源
DataGrid1.DataSource = forumReader ;
//數據綁定
DataGrid1.DataBind();
myConn.Close();
}
public void DataGrid_Updt(object sender, DataGridPageChangedEventArgs e)
{
//設置下一頁的索引值
DataGrid1.CurrentPageIndex = e.NewPageIndex;
//更新變量
startIndex = (DataGrid1.CurrentPageIndex * DataGrid1.PageSize);
//聲名數據綁定
Binding();
}
public void Submit_Click(Object sender, EventArgs e)
{
if(Page.IsValid){
DateTime now = DateTime.Now ;
errmess.Text="" ;
string req = "name="+ System.Web.HttpUtility.UrlEncode(name.Text, System.Text.Encoding.UTF8);
req+="&&email="+ System.Web.HttpUtility.UrlEncode(email.Text, System.Text.Encoding.UTF8);
req+="&&subject="+ System.Web.HttpUtility.UrlEncode(subject.Text, System.Text.Encoding.UTF8);
//得到留言者的IP地址
req+="&&ip="+ System.Web.HttpUtility.UrlEncode(Request.UserHostAddress.ToString(), System.Text.Encoding.UTF8);
req+="&&date="+ System.Web.HttpUtility.UrlEncode(now.ToString(), System.Text.Encoding.UTF8);
req+="&&message="+ System.Web.HttpUtility.UrlEncode(message.Text, System.Text.Encoding.UTF8);
//yes是提示該信息是一個新值
req+="&&newpost="+ System.Web.HttpUtility.UrlEncode("yes", System.Text.Encoding.UTF8);
//返回文件postmessage.aspx 加入查詢.
Response.Redirect("postmessage.aspx?" + req);
}
else
{
errmess.Text="提交以前必須填入所有的值!<br>" ;
}
}
</script>
<LINK href="style.css" type=text/css rel=stylesheet></head>
<body topmargin="0" leftmargin="0" rightmargin="0" marginwidth="0" marginheight="0">
<center>
<asp:label id="errmess" text="" style="COLOR:#ee0000" runat="server" />
<asp:Label class=fodark text="<font color=blue >Q & A</font>" runat=server />
<form method="post" runat="server" ID=Form1>
<%-- 設置 DataGrid 的屬性 --%>
<asp:DataGrid id=DataGrid1 runat="server" ForeColor="Black"
OnPageIndexChanged="DataGrid_Updt" PageSize="20" AllowPaging="True" width="80%"
autogeneratecolumns="False"
AllowCustomPaging="True"
>
<PagerStyle BackColor="yellow" Mode="NumericPages">
</PagerStyle>
<AlternatingItemStyle BorderColor="#FFC080" BackColor="#FF9966">
</AlternatingItemStyle>
<FooterStyle ForeColor="White" BackColor="DarkOrange">
</FooterStyle>
<ItemStyle BackColor="Moccasin">
</ItemStyle>
<HeaderStyle Font-Bold="True" ForeColor="White" BackColor="Coral">
</HeaderStyle>
<Columns>
<asp:TemplateColumn HeaderText="問題" itemstyle-width=30%>
<ItemTemplate>
<asp:Label runat="server" Text='<%#"<a href=replymessage.aspx?postid="+DataBinder.Eval(Container, "DataItem.postid")+">"
+DataBinder.Eval(Container, "DataItem.subject")+"</a>" %>' ID=Label2></asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="作者" itemstyle-width=20%>
<ItemTemplate>
<asp:Label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.name") %>' ID=Label3></asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="回復數" itemstyle-width=10%>
<ItemTemplate>
<asp:Label runat="server" width=10% Text='<%# DataBinder.Eval(Container, "DataItem.replies") %>' ID=Label4>
</asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="查看" itemstyle-width=10%>
<ItemTemplate>
<asp:Label runat="server" width=10% Text='<%# DataBinder.Eval(Container, "DataItem.views") %>' ID=Label5>
</asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="發布日期" itemstyle-width=30%>
<ItemTemplate>
<asp:Label runat="server" width=50% Text='
<%# DateTime.Parse(DataBinder.Eval(Container, "DataItem.dt").ToString()).ToShortDateString() %>' ID=Label6>
</asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
<br>
<asp:Label class=fodark text="<font color=#00000 >發布新問題</font>" runat=server />
<br>
<table border="0" width="80%" align="center">
<tr >
<td class="fohead" colspan=2><b>發布新問題</b></td>
</tr>
<tr class="folight" >
<td>名字 :</td>
<td ><asp:textbox text="" id="name" runat="server" /><asp:RequiredFieldValidator ControlToValidate=name display=Dynamic runat=server>
*</asp:RequiredFieldValidator></td>
</tr>
<tr class="folight">
<td>E-Mail :</td>
<td><asp:textbox text="" id="email" runat="server"/><asp:RequiredFieldValidator ControlToValidate=email display=Dynamic runat=server>
*</asp:RequiredFieldValidator>
<asp:RegularExpressionValidator runat="server"
ControlToValidate="Email"
ValidationExpression="[\w-]+@([\w-]+\.)+[\w-]+"
Display="Dynamic"
Font-Name="verdana" Font-Size="10pt" ErrorMesage="您輸入的Email地址無效"></asp:RegularExpressionValidator></td>
</tr>
<tr class="folight">
<td> 問題:</td>
<td><asp:textbox test="" id="subject" width=200 runat="server"/><asp:RequiredFieldValidator ControlToValidate=subject display=Dynamic runat=server>
*</asp:RequiredFieldValidator>
</td></tr>
<tr class="folight">
<td>內容 :</td>
<td>
<asp:TextBox id=message runat="server"
Columns="30" Rows="15" TextMode="MultiLine"></asp:TextBox></td>
</tr>
<tr class=folight>
<td colspan=2>
<center>
<asp:Button class=fodark id=write onClick=Submit_Click runat="server" Text="提交"></asp:Button>
</center>
</td>
</tr>
</table>
</form>
</center>
</body>
</html>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -