正文

用magicajax做的一个简单提高用户体验的留言2007-05-31 21:25:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/goalbell/26299.html

分享到:


界面图:



 

代码如下:

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>&nbsp;
  <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>&nbsp;
  <asp:linkbutton id="btnPrev" onclick="PagerButtonClick" runat="server"
   Font-size="8pt" ForeColor="navy" CommandArgument="prev"></asp:linkbutton>&nbsp;
  <asp:linkbutton id="btnNext" onclick="PagerButtonClick" runat="server"
   Font-size="8pt" ForeColor="navy" CommandArgument="next"></asp:linkbutton>&nbsp;
  <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();

    }

  
}

 

 

阅读(7165) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册