Linq实现简单留言板

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  οnclick="ShowReplyBox(this)" οnmοuseοver="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="取消" οnclick="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();
        }
    }


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值