界面图:
代码如下:
Default.aspx:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ Register Assembly="MagicAjax" Namespace="MagicAjax.UI.Controls" TagPrefix="ajax" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Simple MessageBook for MagicAjax Application</title>
<style type="text/css">
h3.title{color:seagreen}
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
<div>
<h3 class="title">留言列表:</h3>
<ajax:AjaxPanel ID="AjaxPanel1" runat="server" Width="473px">
<asp:GridView ID="MessageList" runat="server" AutoGenerateColumns="False" DataSourceID="GuestBookSqlSource" AllowPaging="True" PageSize="6" ForeColor="#333333" PagerStyle-HorizontalAlign="Right"
Width="600px" GridLines="None" HorizontalAlign="Center" CellPadding="5" OnPageIndexChanging="MessageList_PageIndexChanging">
<FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
<RowStyle BackColor="#FFFBD6" ForeColor="#333333" />
<SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" />
<HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
<AlternatingRowStyle BackColor="DarkOrange" />
<Columns>
<asp:BoundField DataField="Users" HeaderText="留言者" HeaderStyle-HorizontalAlign="Center" SortExpression="Users" />
<asp:BoundField DataField="Email" HeaderText="电子邮箱" HeaderStyle-HorizontalAlign="Center" SortExpression="Email" />
<asp:BoundField DataField="Topic" HeaderText="留言主题" HeaderStyle-HorizontalAlign="Center" SortExpression="Topic" />
<asp:BoundField DataField="Guest_Content" HeaderText="留言内容" HeaderStyle-HorizontalAlign="Center" SortExpression="Guest_Content" />
</Columns>
<PagerStyle BorderColor="#FFC080" BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="right" />
</asp:GridView>
<div style="FONT-SIZE:9pt;text-align:center">
<asp:label id="lblPageCount" runat="server"></asp:label>
<asp:label id="lblCurrentIndex" runat="server"></asp:label>
<asp:linkbutton id="btnFirst" onclick="PagerButtonClick" runat="server"
Font-size="8pt" ForeColor="navy" CommandArgument="0"></asp:linkbutton>
<asp:linkbutton id="btnPrev" onclick="PagerButtonClick" runat="server"
Font-size="8pt" ForeColor="navy" CommandArgument="prev"></asp:linkbutton>
<asp:linkbutton id="btnNext" onclick="PagerButtonClick" runat="server"
Font-size="8pt" ForeColor="navy" CommandArgument="next"></asp:linkbutton>
<asp:linkbutton id="btnLast" onclick="PagerButtonClick" runat="server"
Font-size="8pt" ForeColor="navy" CommandArgument="last"></asp:linkbutton>
</div>
<asp:SqlDataSource ID="GuestBookSqlSource" runat="server" ConnectionString="<%$ ConnectionStrings:GuestBookConnectionString %>"
SelectCommand="SELECT [Users], [Email], [Topic], [Guest_Content] FROM [Guest_Book]"
InsertCommand="INSERT INTO [Guest_Book]([Users], [Email], [Topic], [Guest_Content]) values(@Users,@Email,@Topic,@Guest_Content)">
</asp:SqlDataSource>
</ajax:AjaxPanel>
</div>
<hr style="border-style:dashed; border-color:black;" />
<div>
<h3 class="title">签写留言:</h3>
<ajax:AjaxPanel ID="AjaxPanel2" runat="server" Width="343px">
<asp:DetailsView ID="LeaveMessage" runat="server" AutoGenerateRows="False" DataSourceID="GuestBookSqlSource"
DefaultMode="Insert" Height="50px" Width="500px" BorderWidth="1px" CellPadding="3" OnItemInserted="AddMsg_ItemInserted" BackColor="#DEBA84" BorderColor="#DEBA84" BorderStyle="None" CellSpacing="2">
<Fields>
<asp:BoundField DataField="Users" HeaderText="留言者" SortExpression="Users" />
<asp:BoundField DataField="Email" HeaderText="电子邮箱" SortExpression="Email" />
<asp:BoundField DataField="Topic" HeaderText="留言主题" SortExpression="Topic" />
<asp:TemplateField HeaderText="留言内容:" SortExpression="Guest_Content">
<InsertItemTemplate>
<asp:TextBox ID="Content" runat="server" Height="100px" Width="200px" TextMode="MultiLine" Text='<%# Bind("Guest_Content") %>'></asp:TextBox>
</InsertItemTemplate>
</asp:TemplateField>
<asp:CommandField ButtonType="Button" InsertText="发送留言" ShowCancelButton="False"
ShowInsertButton="True">
<ItemStyle HorizontalAlign="Center" />
</asp:CommandField>
</Fields>
<FooterStyle BackColor="#F7DFB5" ForeColor="#8C4510" />
<RowStyle BackColor="#FFF7E7" ForeColor="#8C4510" />
<PagerStyle ForeColor="#8C4510" HorizontalAlign="Center" />
<HeaderStyle BackColor="#A55129" Font-Bold="True" ForeColor="White" />
</asp:DetailsView>
</ajax:AjaxPanel>
<asp:Label ID="ErrorMessageLabel" EnableViewState="false" runat="server" />
</div>
</div>
</form>
</body>
</html>
Default.aspx.cs
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
btnFirst.Text = "最首页";
btnPrev.Text = "前一页";
btnNext.Text = "下一页";
btnLast.Text = "最后页";
MessageList.DataBind();
ShowPageChangedStatus();
}
private void ShowPageChangedStatus()
{
lblCurrentIndex.Text = "第" + (MessageList.PageIndex + 1).ToString() + "页";
lblPageCount.Text = "总共 " + MessageList.PageCount.ToString() + " 页";
}
public void PagerButtonClick(object sender, EventArgs e)
{
string arg = ((LinkButton)sender).CommandArgument.ToString();
switch (arg)
{
case "next":
if (MessageList.PageIndex < (MessageList.PageCount - 1))
{
MessageList.PageIndex += 1;
}
break;
case "prev":
if (MessageList.PageIndex > 0)
{
MessageList.PageIndex -= 1;
}
break;
case "last":
MessageList.PageIndex = (MessageList.PageCount - 1);
break;
default:
MessageList.PageIndex = System.Convert.ToInt32(arg);
break;
}
MessageList.DataBind();
ShowPageChangedStatus();
}
protected void MessageList_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
int startIndex;
startIndex = MessageList.PageIndex * MessageList.PageSize;
MessageList.PageIndex = e.NewPageIndex;
MessageList.DataBind();
ShowPageChangedStatus();
}
protected void AddMsg_ItemInserted(object sender, DetailsViewInsertedEventArgs e)
{
if (e.Exception != null)
{
ErrorMessageLabel.Text = "签写留言发生错误,请用正确的格式签写留言!";
e.ExceptionHandled = true;
}
MessageList.DataBind();
}
}
评论