Preferred Language:
Listing 34.2 - Edit.aspx
<%@ Page Language="C#" MasterPageFile="~/Design/MasterPage.master" Title="Blog Post" %>
<script runat="server">
/// <summary>
/// Add default values for new blog entry
/// </summary>
protected void srcBlog_Updating(object sender, ObjectDataSourceMethodEventArgs e)
{
// If new blog entry, add user name
Blog newBlog = (Blog)e.InputParameters[1];
if (newBlog.Id == 0)
{
newBlog.AuthorUserName = User.Identity.Name;
}
}
/// <summary>
/// If no problems, then redirect to blog tags page
/// </summary>
protected void srcBlog_Updated(object sender, ObjectDataSourceStatusEventArgs e)
{
if (e.Exception == null)
{
Blog newBlog = (Blog)e.ReturnValue;
Response.Redirect("~/Admin/BlogTags/Edit.aspx?blogId=" + newBlog.Id);
}
}
/// <summary>
/// If there was a problem, keep the form in edit mode and show validation errors
/// </summary>
protected void frmBlog_ItemUpdated(object sender, FormViewUpdatedEventArgs e)
{
if (e.Exception != null)
{
e.KeepInEditMode = true;
e.ExceptionHandled = true;
ValidationUtility.ShowValidationErrors(this, e.Exception);
}
}
</script>
<asp:Content ID="Content1" ContentPlaceHolderID="cphMain" Runat="Server">
<asp:UpdatePanel ID="up1" runat="server">
<ContentTemplate>
<asp:FormView
id="frmBlog"
DataSourceID="srcBlog"
DataKeyNames="Id,Version"
DefaultMode="Edit"
OnItemUpdated="frmBlog_ItemUpdated"
Width="100%"
Runat="server">
<EditItemTemplate>
<div class="field">
<div class="fieldLabel">
<asp:Label
id="lblTitle"
Text="Title:"
AssociatedControlID="txtTitle"
Runat="server" />
</div>
<div class="fieldValue">
<asp:TextBox
id="txtTitle"
Text='<%# Bind("Title") %>'
Columns="60"
Runat="server" />
</div>
<div class="fieldValue">
<super:EntityCallOutValidator
id="valTitle"
PropertyName="Title"
Runat="server" />
</div>
</div>
<div class="field">
<div class="fieldLabel">
<asp:Label
id="lblIntroductionText"
Text="Introduction Text:"
AssociatedControlID="txtIntroductionText"
Runat="server" />
</div>
<div class="fieldValue">
<asp:TextBox
id="txtIntroductionText"
Text='<%# Bind("IntroductionText") %>'
TextMode="MultiLine"
Columns="60"
Rows="4"
Runat="server" />
</div>
<div class="fieldValue">
<super:EntityCallOutValidator
id="valIntroductionText"
PropertyName="IntroductionText"
Runat="server" />
</div>
</div>
<div class="field">
<div class="fieldLabel">
<asp:Label
id="lblPost"
Text="Post:"
AssociatedControlID="txtPost"
Runat="server" />
</div>
<div class="fieldValue">
<fck:FCKeditor
id="txtPost"
BasePath="~/FCKEditor/"
ToolbarSet="Superexpert"
Value='<%# Bind("Post") %>'
Width="600px"
Height="600px"
runat="server" />
</div>
<div class="fieldValue">
<super:EntityCallOutValidator
id="EntityCallOutValidator1"
PropertyName="Post"
Runat="server" />
</div>
</div>
<div class="field">
<div class="fieldLabel">
</div>
<div>
<asp:CheckBox
id="chkIsPinned"
Text="Is Pinned"
Checked='<%# Bind("IsPinned") %>'
Runat="server" />
</div>
</div>
<div class="field">
<div class="fieldLabel">
</div>
<div>
<asp:Button
id="btnNext"
CommandName="Update"
Text="Next"
Runat="server" />
</div>
</div>
</EditItemTemplate>
</asp:FormView>
</ContentTemplate>
</asp:UpdatePanel>
<super:EntityDataSource
id="srcBlog"
TypeName="Blog"
SelectMethod="Get"
UpdateMethod="Save"
OnUpdating="srcBlog_Updating"
OnUpdated="srcBlog_Updated"
Runat="Server">
<SelectParameters>
<asp:QueryStringParameter Name="id" QueryStringField="blogId" />
</SelectParameters>
</super:EntityDataSource>
</asp:Content>
Need ASP.NET and Visual Studio 2008 Training?
- Learn ASP.NET 3.5 from Stephen Walther, author of ASP.NET 3.5 Unleashed.
We've provided ASP.NET training for NASA, Lockheed Martin, the National Science Foundation, Verizon,
Boeing, the US House of Representatives, Kaiser, Petco, Mary Kay, and Microsoft.
Why not your company?
-
Receive a four day, hands-on, intensive workshop.
-
We fly to you, anywhere in the world.
-
We can bring our own laptops.
To learn more, visit the
Superexpert Training website.