C# Files: LinkBars.cs  


<%@ Page Language="C#" %>
  <%@ Register TagPrefix="DH" TagName="TopBar" src="../topbar.ascx" %>
  <%@ Register TagPrefix="DH" TagName="SideBar" src="../sidebar.ascx" %>
  <%@ Register TagPrefix="DH" TagName="Copyright" src="../copyrightbar.ascx" %>
  <%@ Register TagPrefix="DH" Namespace="LinkBars" Assembly="devhood" %>
  <%@ Import Namespace = DH_Jobs %>
  <%@ Import Namespace = DH_Constants %>
  <%@ Register TagPrefix="DH" TagName="AddToMyHood" src="/AddToMyHood.ascx" %>
<html> <head> <title id=page_title runat=server>Job Listings</title> <LINK rel=stylesheet type="text/css" href="jobs.css">
<script language=C# runat="server" >

    string strPageNumberParam;
    string strSortParam;
    string strOrderParam;
    int iTotalPages;
    
    protected void Page_Load(Object Src, EventArgs E) {
    
        addto.Description = "Jobs";

        strPageNumberParam = Request.Params["page_number"];
        if (null == strPageNumberParam) {
            strPageNumberParam = "1";
        }
        
        strSortParam = Request.Params["sort"];
        if (null == strSortParam) {
            strSortParam = "date_approved";
        }
        
        strOrderParam = Request.Params["order"];
        if (null == strOrderParam) {
            strOrderParam = "desc";
        }
        iTotalPages = Convert.ToInt32(Math.Ceiling(DH_JobsDB.GetJobCount() / 10.0));
        if (iTotalPages == 0) {
            iTotalPages = 1;
        }
        if (!Page.IsPostBack) {
            
            //lblTotalPages2.Text = lblTotalPages.Text;
        }
        
        Label lblMore = new Label();
        lblMore.Text = "More:";
        lblMore.CssClass = "JobsPages";
        tdPages.Controls.Add(lblMore);
        
        Label lblPage;
        LinkButton lbPage;
        for (int i=1; i <= iTotalPages; i++) {
            tdPages.Controls.Add(new LiteralControl("   "));
            if (Convert.ToInt32(strPageNumberParam) != i) {
                lbPage = new LinkButton();
                lbPage.Text = i.ToString();
                lbPage.Command += new CommandEventHandler(ChangePage);
                lbPage.CommandName = i.ToString();
                lbPage.CssClass = "JobsPages";    
                tdPages.Controls.Add(lbPage);
            }
            else {
                lblPage = new Label();
                lblPage.Text = i.ToString();
                lblPage.CssClass = "JobsPages";
                tdPages.Controls.Add(lblPage);
            }
        }
        }
    
        void Page_PreRender(Object Sender, EventArgs E) {
        
            //tbCurrentPage.Text  = strPageNumberParam;
            //tbCurrentPage2.Text = tbCurrentPage.Text;
    
            int iPageNumber = Convert.ToInt32(strPageNumberParam);
            rpJobs.DataSource = DH_JobsDB.GetJobs((iPageNumber - 1) * 10 + 1, iPageNumber * 10,
                                                  strSortParam, strOrderParam);
            rpJobs.DataBind();
            
            if (1 == iPageNumber) {
                lbPrevious.Enabled  = false;
                lbPrevious1.Enabled = false;
            } else {
                lbPrevious.Enabled  = true;
                lbPrevious1.Enabled = true;
            }
            
            
            if (iTotalPages == iPageNumber) {
                lbNext.Enabled  = false;
                lbNext1.Enabled = false;
            } else {
                lbNext.Enabled  = true;
                lbNext1.Enabled = true;
            }
        }
    
        void ChangePage (Object Sender, CommandEventArgs e) {
            Page.Response.Redirect(String.Concat("default.aspx?page_number=", (e.CommandName), "&sort=", strSortParam, "&order=", strOrderParam)); 
        }

    
        void Next_Click(Object Sender, EventArgs E) {
            Page.Response.Redirect(String.Concat("default.aspx?page_number=", (Convert.ToInt32(strPageNumberParam)+1).ToString(), 
                                        "&sort=", strSortParam, "&order=", strOrderParam));
        }
    
        void Back_Click(Object Sender, EventArgs E) {
            Page.Response.Redirect(String.Concat("default.aspx?page_number=", (Convert.ToInt32(strPageNumberParam)-1).ToString(), 
                                        "&sort=", strSortParam, "&order=", strOrderParam));
        }
    
        void Sort_Click(Object Sender, CommandEventArgs E) {
            string strNewOrderParam = strOrderParam;
            if (strSortParam == E.CommandName) {
                strNewOrderParam = ("asc" == strOrderParam) ? "desc" : "asc";
            }
            Page.Response.Redirect(String.Concat("default.aspx?page_number=", strPageNumberParam, 
                                        "&sort=", E.CommandName, "&order=", strNewOrderParam));
        }
    
</script>
>
</head>
<body bgcolor=white background-color=white>
<form runat=server>

<DH:TopBar id=TopBar runat=server />

<table border=0 cellspacing=0 cellpadding=0 width=100% height=90%>

    
    <tr>
        <td height=100% width=1% rowspan=2 valign=top align=left class=tblSideBar>
            <DH:SideBar runat=server />
        </td>
        <td height=100% width=100% valign=top align=left>
            
            <table border=0 cellpadding=10 cellspacing=0 width=100% height=100%>
                
                <tr>
                    <td height=1% width=72% valign=bottom>
                        <DH:NavBar id=bar RPad=3 LPad=1 Seperator=">" width=100% seperatorcolor=red runat=server />
                    </td>
                    <td height=1% width=28% valign=top align=bottom>
                        <DH:AddToMyHood id=addto runat=server />
                    </td>
                </tr>
                
                <tr>
                    <td height=100% width=100% colspan=2 valign=top>
<!-- BEGIN PAGE CELL -->
                        
    <table border=0 width=100% cellspacing=0 cellpadding=5>
        <tr>
            <td class=JobsHeading>
                Job Listings
            </td>
        </tr>
        <tr><td colspan=2 height=1%><hr size=1 color=orange noshade></td></tr>

        <tr valign=middle>
            <td colspan=2 height=1% class=JobsHeaderText>
                Below is a listing of jobs related to web development, posted by the citizens of DevHood.<br><br>  
                If you have an employment opportunity or a web consulting project you would like done, you can advertise it to the DevHood community by posting it <a href="jobs_submission.aspx">here</a>.
            </td>
        </tr>
        <tr>
            <td colspan=2> 
            </td>
        </tr>
        <tr valign=middle>
            <td height=40 width=300 class=JobsNavLink>
                Sort by: 
                <asp:LinkButton id="Date" Text="Date" oncommand="Sort_Click" commandname="date_approved" runat="Server"/>  
                <asp:LinkButton id="Title" Text="Title" oncommand="Sort_Click" commandname="job_title" runat="Server"/>  
                <asp:LinkButton id="Type" Text="Job Type" oncommand="Sort_Click" commandname="job_type" runat="Server"/>  
                <asp:LinkButton id="Company" Text="Company" oncommand="Sort_Click" commandname="contact_company" runat="Server"/>
            </td>
            <td align=right class=JobsNavLink>
                <asp:LinkButton id="lbPrevious" Text="previous" onclick="Back_Click" runat="Server"/>
                :
                <asp:LinkButton id="lbNext" Text="next" onclick="Next_Click" runat="Server"/>
            </td>
        </tr>
        <tr>
            <td colspan=2>
            </td>
        </tr>
        
    </table>
        
    <asp:Repeater id="rpJobs" runat="Server">

        <HeaderTemplate>
            <table border=0 width=100% cellspacing=0 cellpadding=5>
        </HeaderTemplate>
        
        <ItemTemplate>
            
            <tr bgcolor=#CCCCFF>
                <td colspan=2 class=JobsCompany>
                    <%# (DataBinder.Eval(Container.DataItem, "ContactCompany")).ToString().ToUpper()%> 
                </td>
                <td align=right width=1% nowrap class=JobsInfo>
                    <%# ((DateTime)DataBinder.Eval(Container.DataItem, "Approved")).ToString("MMMM dd, yyyy", null) %>
                </td>
            </tr>
            <tr bgcolor=#CCCCFF>
                <td colspan=3 class=JobsInfo>
                    
                        <a class=JobsInfo href=jobs_details.aspx?job_id=<%# DataBinder.Eval(Container.DataItem, "JobID") %>><b><%# DataBinder.Eval(Container.DataItem, "Title") %> </b></a>
                    
                </td>
            </tr>
            
            <tr bgcolor=#CCCCFF>
                <td class=JobsCategories align=left width=1%>
                    Type:
                </td>
                <td align=left class=JobsInfo width=98%>
                    <%# (DataBinder.Eval(Container.DataItem, "Type")).ToString().ToUpper() %>
                </td>

                <td align=right  width=1% nowrap class=JobsInfo>
                    <asp:label text="Contact:" cssclass=JobsCategories runat=Server/> <%# (DataBinder.Eval(Container.DataItem, "ContactName")) %> 
                </td>
            </tr>
            <tr bgcolor=#CCCCFF >
                <td class=JobsCategories align=left width=1%>
                    Location:
                </td>
                <td align=left class=JobsInfo colspan=2 width=99%>
                    <%# (DataBinder.Eval(Container.DataItem, "Location")) %> 
                </td>
            </tr>
            <tr bgcolor=#CCCCFF >
                <td class=JobsCategories align=left width=1%>
                    Starting:
                </td>
                <td align=left class=JobsInfo colspan=2 width=99%>
                    <%# ((DateTime)DataBinder.Eval(Container.DataItem, "StartDate")).ToString("MMMM dd, yyyy", null) %>
                </td>
            </tr>
            <tr bgcolor=#CCCCFF>
                   <td class=JobsCategories align=left valign=top>
                        Description:
                </td>
                <td colspan=2 class=JobsSummary>
                    <%# DataBinder.Eval(Container.DataItem, "Summary") %><br>
                    (<a class=JobsCategories href=jobs_details.aspx?job_id=<%# DataBinder.Eval(Container.DataItem, "JobID") %>>Details</a>)
                </td>
            </tr>
            
            <tr bgcolor=#CCCCFF>
                <td colspan=4>
                     
                </td>
            </tr>
            
        </ItemTemplate>
        
        <AlternatingItemTemplate>
            
            <tr >
                <td colspan=2 class=JobsCompany>
                    <%# (DataBinder.Eval(Container.DataItem, "ContactCompany")).ToString().ToUpper()%> 
                </td>
                <td align=right width=1% nowrap class=JobsInfo>
                    <%# ((DateTime)DataBinder.Eval(Container.DataItem, "Approved")).ToString("MMMM dd, yyyy", null) %>
                </td>
            </tr>
            <tr >
                <td colspan=3 class=JobsInfo>
                        <a class=JobsInfo href=jobs_details.aspx?job_id=<%# DataBinder.Eval(Container.DataItem, "JobID") %>><b><%# DataBinder.Eval(Container.DataItem, "Title") %> </b></a>
                </td>
            </tr>
            <tr >
                <td class=JobsCategories align=left>
                    Type:
                </td>
                <td align=left class=JobsInfo>
                    <%# (DataBinder.Eval(Container.DataItem, "Type")).ToString().ToUpper() %>
                </td>

                <td align=right  width=1% nowrap class=JobsInfo>
                    <asp:label text="Contact:" cssclass=JobsCategories runat=Server ID=Label1/> <%# (DataBinder.Eval(Container.DataItem, "ContactName")) %> 
                </td>
            </tr>
            <tr >
                <td class=JobsCategories align=left width=1%>
                    Location:
                </td>
                <td align=left class=JobsInfo colspan=2 width=99%>
                    <%# (DataBinder.Eval(Container.DataItem, "Location")) %> 
                </td>
            </tr>
            <tr  >
                <td class=JobsCategories align=left width=1%>
                    Starting:
                </td>
                <td align=left class=JobsInfo colspan=2 width=99%>
                    <%# ((DateTime)DataBinder.Eval(Container.DataItem, "StartDate")).ToString("MMMM dd, yyyy", null) %>
                </td>
            </tr>
            <tr >
                   <td class=JobsCategories align=left valign=top width=1%>
                        Description:
                </td>
                <td colspan=2 class=JobsSummary width=99%>
                    <%# DataBinder.Eval(Container.DataItem, "Summary") %><br>
                    (<a class=JobsCategories href=jobs_details.aspx?job_id=<%# DataBinder.Eval(Container.DataItem, "JobID") %>>Details</a>)
                </td>
            </tr>
            
            <tr>
                <td colspan=4>
                     
                </td>
            </tr>
            
        </AlternatingItemTemplate>

        <FooterTemplate>
            </table>
        </FooterTemplate>

     </asp:Repeater>
     
     <table border =0 width=100% cellspacing=0>
        <tr>
            <td width=300></td>
            <td align=right class=JobsNavLink>
                <asp:LinkButton id="lbPrevious1" Text="previous" onclick="Back_Click" runat="Server"/>
                :
                <asp:LinkButton id="lbNext1" Text="next" onclick="Next_Click" runat="Server"/>
            </td>
        </tr>
        <tr>
            <td align=center colspan=2 id=tdPages runat=server>
        </td>
    </tr>
    </table>
<!-- END PAGE CELL -->
                    </td>
                </tr>
                
            </table>
        
        </td>    

    </tr>
    
    <tr>
        <td height=1% width=100% align=left valign=bottom>
            <DH:Copyright runat=server />
        </td>
    </tr>
    
</table>

</form>
</body>
</html>