用asp.net写的论坛程序--论坛主页

  1. forum.aspx :- The main forum page </P><P><%@ Page Language="C#" Debug="true" %>
    <%@ Assembly Name="System.Data" %>
    <%@ Import Namespace="System.Data.ADO" %>
    <%@ Import Namespace="System.Data" %>
    <%@ Import Namespace="System" %>
    <html><head>
    <title>Welcome to My Forum!</title>
    <script language="C#" runat="server" >
    //execute this script when the page loads
    void Page_Load(Object Src, EventArgs E)
    {
    //Call the Method to DataBind the DataGrid
    Binding() ;
    }
    //This Method Connects to the Database, and DataBinds the Database to the DataGrid
    public void Binding()
    {
    //String to connect to the database, If your Database is in some other directory then change the path
    //To the Database below
    string strConn=@"Provider=Microsoft.Jet.OLEDB.4.0 ;Data Source="+Server.MapPath(".\\\\db\\\\board.mdb") ;
    //Make a Connection to the Database
    ADOConnection myConn = new ADOConnection(strConn) ;
    //String to select records from the Database. newpost Table
    //I have used "ORDER BY postid DESC" since I want to show the latest post on the top
    //If you remove this clause then the oldest message will be shown first
    string strCom = "SELECT postid ,subject ,name ,replies ,views ,date FROM newpost ORDER BY postid DESC" ;
    //Open the Connection, Always remember to Open the connection before doing anything else
    myConn.Open();
    DataSet myDataSet = new DataSet();
    //Create a ADODataSetCommand and a DataSet
    ADODataSetCommand myCommand =new ADODataSetCommand(strCom,myConn);
    //Fill the DataSet
    myCommand.FillDataSet(myDataSet,"newpost") ;
    //Connection is closed
    myConn.Close();
    //Set the DataView of the Table "newpost" contained in the DataSet for the DataGrid
    DataGrid1.DataSource = myDataSet.Tables["newpost"].DefaultView ;
    //DataBind the DataGrid
    DataGrid1.DataBind();
    }
    //This method is called when the DataGrid is Paged (i.e. when you change from Page 1 to Page 2 etc.. )
    public void DataGrid_Updt(Object sender, DataGridPageChangedEventArgs e)
    {
    //Call the Method to Databind
    Binding();
    }
    //This Method is called when the form is submitted to make a new Post
    public void Submit_Click(Object sender, EventArgs e)
    {
    //proceed only if all the required fields are filled-in
    if(Page.IsValid&&name.Text!=""&&subject.Text!=""&&email.Text!=""){
    //Get the Current Date and Time
    DateTime now = DateTime.Now ;
    errmess.Text="" ;
    //I am building a custom query which will be used to call the postmessage.aspx page.
    //Since it will be a query we have to encode the query into UTF8 format.
    //So I get all the fields from the form and encode them into UTF8 format
    string req = "name="+ System.Web.HttpUtility.UrlEncodeToString(name.Text, System.Text.Encoding.UTF8);
    req+="&&email="+ System.Web.HttpUtility.UrlEncodeToString(email.Text, System.Text.Encoding.UTF8);
    req+="&&subject="+ System.Web.HttpUtility.UrlEncodeToString(subject.Text, System.Text.Encoding.UTF8);
    //Get the HostAddress of the Author
    req+="&&ip="+ System.Web.HttpUtility.UrlEncodeToString(Request.UserHostAddress.ToString(), System.Text.Encoding.UTF8);
    req+="&&date="+ System.Web.HttpUtility.UrlEncodeToString(now.ToString(), System.Text.Encoding.UTF8);
    req+="&&message="+ System.Web.HttpUtility.UrlEncodeToString(message.Text, System.Text.Encoding.UTF8);
    //A 'yes' is used below to tell the postmessage page that this is a new topic post
    req+="&&newpost="+ System.Web.HttpUtility.UrlEncodeToString("yes", System.Text.Encoding.UTF8);
    //call the postmessage.aspx page and append the query to it.
    Page.Navigate("postmessage.aspx?" + req);
    }
    else
    {
    errmess.Text="Fill in all the Required Fields before Posting!<br>" ;
    }
    }
    </script>
    <LINK href="mystyle.css" type=text/css rel=stylesheet></head>
    <body topmargin="0" leftmargin="0" rightmargin="0" marginwidth="0" marginheight="0">
    <!-- #Include File="header.inc" -->
    <center>
    <asp:label id="errmess" text="" style="COLOR:#ff0000" runat="server" />
    <asp:Label class=fodark text="<font color=#00000 >Welcome to My Discussion Forum</font>" runat=server />
    <br>
    <br>
    <form method="post" runat="server" ID=Form1>
    <%-- The DataGrid settings. Its very interesting how much you can play with it --%>
    <asp:DataGrid id=DataGrid1 runat="server" ForeColor="Black"
    PagerStyle-Mode="NumericPages"
    OnPageIndexChanged="DataGrid_Updt" PageSize="20" AllowPaging="True" width="80%" autogeneratecolumns="False">
    <property name="PagerStyle">
    <asp:DataGridPagerStyle BackColor="Coral" Mode="NumericPages">
    </asp:DataGridPagerStyle>
    </property></P><P><property name="AlternatingItemStyle">
    <asp:TableItemStyle BorderColor="#FFC080" BackColor="#FF9966">
    </asp:TableItemStyle>
    </property></P><P><property name="FooterStyle">
    <asp:TableItemStyle ForeColor="White" BackColor="DarkOrange">
    </asp:TableItemStyle>
    </property></P><P><property name="ItemStyle">
    <asp:TableItemStyle BackColor="Moccasin">
    </asp:TableItemStyle>
    </property></P><P><property name="HeaderStyle">
    <asp:TableItemStyle Font-Bold="True" ForeColor="White" BackColor="Coral">
    </asp:TableItemStyle>
    </property>
    <%-- I am setting up the Individual columns myself using Templates --%>
    <property name="Columns">
    <%-- Manipulate the subject entry so that it contains a link to the reply page --%>
    <asp:TemplateColumn HeaderText="Subject" itemstyle-width=50%>
    <template name="ItemTemplate" >
    <asp:Label runat="server" Text='<%#"<a href=reply.aspx?postid="+DataBinder.Eval(Container, "DataItem.postid")+">"
    +DataBinder.Eval(Container, "DataItem.subject")+"</a>" %>' ID=Label2></asp:Label>
    </template>
    </asp:TemplateColumn></P><P><asp:TemplateColumn HeaderText="Author Name" itemstyle-width=20%>
    <template name="ItemTemplate">
    <asp:Label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.name") %>' ID=Label3></asp:Label>
    </template>
    </asp:TemplateColumn></P><P>
    <asp:TemplateColumn HeaderText="Replies" itemstyle-width=10%>
    <template name="ItemTemplate">
    <asp:Label runat="server" width=10% Text='<%# DataBinder.Eval(Container, "DataItem.replies") %>' ID=Label4>
    </asp:Label>
    </template>
    </asp:TemplateColumn></P><P><asp:TemplateColumn HeaderText="Views" itemstyle-width=10%>
    <template name="ItemTemplate">
    <asp:Label runat="server" width=10% Text='<%# DataBinder.Eval(Container, "DataItem.views") %>' ID=Label5>
    </asp:Label>
    </template>
    </asp:TemplateColumn></P><P><asp:TemplateColumn HeaderText="Date of Post" itemstyle-width=10%>
    <template name="ItemTemplate">
    <asp:Label runat="server" width=10% Text='
    <%# DataBinder.Eval(Container, "DataItem.date").ToString().ToDateTime().ToShortDateString() %>' ID=Label6>
    </asp:Label></P><P></template>
    </asp:TemplateColumn>
    </property>
    </asp:DataGrid>
    <br>
    <br>
    <asp:Label class=fodark text="<font color=#00000 >Post New Topic</font>" runat=server />
    <br>
    <table border="0" width="80%" align="center">
    <tr >
    <td class="fohead" colspan=2><b>Post New Topic</b></td>
    </tr>
    <tr class="folight" >
    <td>Name :</td>
    <td ><asp:textbox text="" id="name" runat="server" /> <font color=#ff0000></font></td>
    </tr>
    <tr class="folight">
    <td>E-Mail :</td>
    <td><asp:textbox text="" id="email" runat="server"/> <font color=#ff0000>
    </font></td>
    </tr>
    <tr class="folight">
    <td> Subject:</td>
    <td><asp:textbox test="" id="subject" width=200 runat="server"/> <font color=#ff0000>*</font>
    </td></tr>
    <tr class="folight">
    <td>Message :</td>
    <td>
    <asp:TextBox id=message runat="server"
    Columns="30" Rows="15" TextMode="MultiLine"></asp:TextBox></td>
    </tr>
    <tr class=folight>
    <td colspan=2>
    <asp:Button class=fodark id=write onClick=Submit_Click runat="server" Text="Submit"></asp:Button></td></tr>
    </table>
    </form>
    </center>
    <!-- #Include File="footer.inc" -->
    </body></html>
Published At
Categories with Web编程
Tagged with
comments powered by Disqus