|
<%@ Page Language="C#" MasterPageFile="~/Site.master" %>
<%@ Import Namespace="MessageBoard.Web" %>
<script runat="server">
//DataBinding helpers
private MessageBoard.Message Message
{
get { return Page.GetDataItem() as MessageBoard.Message; }
}
private string MessageUrl
{
get { return "Message.aspx?id=" + Message.Id.ToString(System.Globalization.CultureInfo.InvariantCulture); }
}
private string MessageDateInUsersTimeZone
{
get { return Utility.GetFormattedTime(Message.DatePosted); }
}
private string MessagePreviewText
{
get { return Utility.GetPreviewText(Eval("Text")); }
}
</script>
<asp:Content runat="server" ContentPlaceHolderID="MainContent">
<div id="controlBar">
<div>
<asp:DataPager ID="topPager" runat="server" PagedControlID="messageListView" QueryStringField="start" PageSize="25">
<Fields>
<asp:NextPreviousPagerField ButtonType="Button" ShowFirstPageButton="True" ShowNextPageButton="False"
ShowPreviousPageButton="True" FirstPageText="<<" LastPageText=">>" NextPageText=">"
PreviousPageText="<" RenderDisabledButtonsAsLabels="false" />
<asp:NumericPagerField />
<asp:NextPreviousPagerField ButtonType="Button" ShowLastPageButton="True" ShowNextPageButton="True"
ShowPreviousPageButton="False" RenderDisabledButtonsAsLabels="false" NextPageText=">"
LastPageText=">>" />
</Fields>
</asp:DataPager>
</div>
<br />
<a id="newMessageLink" href="#newMessageBookmark">New Message</a>
</div>
<asp:ListView ID="messageListView" runat="server" DataSourceID="messageDataSource"
InsertItemPosition="LastItem">
<LayoutTemplate>
<div class="header">
<span class="subject">Subject</span> <span class="postedBy">Posted By</span> <span
class="datePosted">Date Posted</span>
</div>
<div id="messageList">
<asp:PlaceHolder runat="server" ID="itemPlaceHolder" />
</div>
</LayoutTemplate>
<ItemTemplate>
<div class="message">
<h2 class="subject">
<a href='<%# MessageUrl %>'>
<%# Message.Subject %>
</a>
</h2>
<div class="postedBy">
<b>Posted By: </b><%# Message.PostedBy %></div>
<div class="datePosted">
<b>Date Posted: </b>
<%# MessageDateInUsersTimeZone %>
</div>
<div class="text">
<asp:Literal runat="server" Text='<%# MessagePreviewText %>' />
</div>
</div>
</ItemTemplate>
<InsertItemTemplate>
<div id="newMessagePanel">
<a id="newMessageBookmark"></a>
<h2>
Post a Message</h2>
<div id="subjectPanel">
<asp:Label CssClass="subjectLabel" runat="server" AccessKey="S" Text="Subject:" /><br />
<asp:TextBox ID="Subject" CssClass="subjectTextBox" runat="server" Text='<%# Bind("Subject") %>' Columns="60" Rows="1" />
</div>
<div id="subjectValidationPanel">
<asp:RequiredFieldValidator runat="server" ID="validateSubjectRequired" ControlToValidate="Subject"
ErrorMessage="Please enter a subject" SetFocusOnError="True" Display="Dynamic" />
</div>
<div id="textPanel">
<asp:Label CssClass="textLabel" runat="server" AccessKey="T" Text="Text:" /><br />
<asp:TextBox ID="Text" CssClass="textTextBox" runat="server" Text='<%# Bind("Text") %>'
TextMode="MultiLine" Rows="10" Columns="60" />
</div>
<div id="textValidationPanel">
<asp:RequiredFieldValidator runat="server" ID="validateTextRequired" ControlToValidate="Text"
ErrorMessage="Please enter some text" SetFocusOnError="True" Display="Dynamic" />
</div>
<div id="buttonPanel">
<asp:Button ID="PostMessage" CommandName="Insert" runat="server" Text="Post Message" />
<asp:Button ID="Cancel" runat="server" CommandName="Cancel" Text="Cancel" CausesValidation="False" />
</div>
</div>
</InsertItemTemplate>
</asp:ListView>
<asp:ObjectDataSource ID="messageDataSource" runat="server" SelectMethod="GetRecentMessages"
TypeName="MessageBoard.MessageSource" MaximumRowsParameterName="count" SelectCountMethod="GetMessageCount"
StartRowIndexParameterName="start" EnablePaging="True" InsertMethod="AddMessage">
</asp:ObjectDataSource>
</asp:Content>
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.