Linq实现简单留言板

来源:互联网 发布:淘宝客软件购买2800么 编辑:程序博客网 时间:2024/05/02 12:50

SQL后台代码:

 

create table tbGuestBook(Userid int identity(1,1)  primary key,UserName varchar(50) not null,PostTime Datetime not null,UserMessage varchar(400),IsReplied bit not null,Reply varchar(400))insert into  tbGuestBook values('admin','2007-1-1','hello',0,'hehe')insert into  tbGuestBook values('guest','2008-1-1','hello',0,'hehe')


 

html:

<html xmlns="http://www.w3.org/1999/xhtml"><head runat="server">    <title></title>    <script src="Scripts/jquery-1.4.1.min.js" type="text/javascript">        </script>     <script type="text/javascript">         //    var control = document.getElementById("<%=txtName.ClientID%>");         function ShowReplyBox(obj) {             var tab = $(obj).parents("table");             tab.find("#lblReply").css("display", "none");             tab.find("textarea").css("display", "block");             tab.find("#PCommand").css("display", "block");         }         function Cancel(obj) {             var tab = $(obj).parents("table");             tab.find("#lblReply").css("display", "block");             tab.find("textarea").css("display", "none");             tab.find("#PCommand").css("display", "none");         }         function ShowCommand(obj) {             var tab = $("label #lblCommand").css("display", obj);         }     </script></head><body>   <form id="form1" runat="server">    <div style="width: 100%" align="center">        <h2>            留言板</h2>        <textarea id="txtMessage" runat="server" style="width: 600px; height: 200px"></textarea>        <table style="width: 600px" cellpadding="0" cellspacing="0">            <tr>                <td align="left">                    姓名<input type="text" runat="server" id="txtName" />                </td>                <td align="right" style="width:80px">                    <input id="btnMessage" runat="server"                         type="button" value="发表留言" onserverclick="btnMessage_onclick"  />                </td>            </tr>        </table>        <asp:Repeater ID="Repeater1" runat="server">            <ItemTemplate>                <table style="width: 600px; font-size: 20px;" cellspacing="0" cellpadding="0">                    <tr>                        <td align="right">                         <div style="text-align:left">  <%#Eval("UserName").ToString() == ""?"匿名":Eval("UserName")%></div> <%#Eval("PostTime")%>                            <label id="lblCommand" >                                <label  onclick="ShowReplyBox(this)" onmouseover="this.style.cursor='hand'">                                    <%#Eval("IsReplied").ToString()=="False"?"回复":"修改" %></label>                                  <asp:LinkButton runat="server" ID="lbtnDel" Text="删除" CommandArgument='<%#Eval("Userid") %>'  OnClick="lbtnDel_Click"></asp:LinkButton>                            </label>                        </td>                    </tr>                    <tr>                        <td align="center">                            <%#Eval("UserMessage")%>                        </td>                    </tr>                    <tr>                        <td>                            <hr />                            <table style="width: 100%; height: 100%;">                                <tr>                                    <td style="width: 80px" align="center">                                       <h3> 管理员回复:</h3>                                    </td>                                    <td>                                        <label id="lblReply">                                            <%#Eval("IsReplied").ToString() == "False" ? "暂无回复!" : Eval("Reply")%></label>                                        <textarea style="display:none" id="txtReply" cols="56" rows="20" runat="server"><%#Eval("Reply") %></textarea>                                        <p id="PCommand" style="display:none">                                            <asp:Button runat="server" ID="btnReply" Text="回复"  CommandArgument='<%#Eval("Userid")%>' OnClick="btnReply_Click"/>                                              <input type="button" value="取消" onclick="Cancel(this)" /></p>                                    </td>                                                                    </tr>                            </table>                        </td>                    </tr>                </table>            </ItemTemplate>        </asp:Repeater>    </div>    </form></body></html>


后台代码:

 public partial class Message : System.Web.UI.Page    {        GuestBookDataContext dct = new GuestBookDataContext();        protected void Page_Load(object sender, EventArgs e)        {            if (!IsPostBack)            {                // Page.ClientScript.RegisterStartupScript(this.GetType(), "sd", "ShowCommand('block')", true);                 Page.ClientScript.RegisterStartupScript(this.GetType(), "sd", "ShowCommand('none')", true);                Bind();            }        }        public void Bind()        {            var q = from p in dct.tbGuestBook orderby p.PostTime descending select p;            Repeater1.DataSource = q;            Repeater1.DataBind();        }        protected void btnMessage_onclick(object sender, EventArgs e)        {            tbGuestBook ms = new tbGuestBook()                {                    UserName=txtName.Value,                    PostTime=DateTime.Now,                    IsReplied=false,                    UserMessage=txtMessage.Value,                    Reply=null                };            dct.tbGuestBook.InsertOnSubmit(ms);            dct.SubmitChanges();            Bind();        }        protected void lbtnDel_Click(object sender,EventArgs e)        {            LinkButton lb = sender as LinkButton;            int id = Convert.ToInt32(lb.CommandArgument);            tbGuestBook ms = dct.tbGuestBook.Where(w => w.Userid == id).First();            dct.tbGuestBook.DeleteOnSubmit(ms);            dct.SubmitChanges();            Bind();        }        protected void btnReply_Click(object sender, EventArgs e)        {            Button btn = sender as Button;            int id = Convert.ToInt32(btn.CommandArgument);            //tbGuestBook ms = (from p in dct.tbGuestBook where p.Userid == id select p).First();            tbGuestBook ms = dct.tbGuestBook.Where(w => w.Userid == id).First();            ms.IsReplied = true;            ms.Reply = (btn.Parent.FindControl("txtReply") as HtmlTextArea).Value;            dct.SubmitChanges();            Bind();        }    }