- "); var item = $("
- ").html(comments); 56 for (var i = 0; (i < data.length); i++) { var commentId = data[i]['comment_id']; parent = data[i]['parent_comment_id']; if (parent == "0") { comments = "" + "from " + data[i]['comment_sender_name'] + " at " + data[i]['date'] + "" + "" + data[i]['comment'] + "" + "Reply" + ""; var item = $("
- ").html(comments); list.append(item); var reply_list = $('
- '); item.append(reply_list); listReplies(commentId, data, reply_list); } } $("#output").html(list); } }); } function listReplies(commentId, data, list) { for (var i = 0; (i < data.length); i++) { 57 if (commentId == data[i].parent_comment_id) { var comments = "" + "@" + data[i]['parentName']+"" + " from " + data[i]['comment_sender_name'] + " at " + data[i]['date'] + "" + "" + data[i]['comment'] + "" + "Reply" + ""; var item = $("
- ").html(comments); var reply_list = $('
- '); list.append(item); item.append(reply_list); listReplies(data[i].comment_id, data, reply_list); } } } 58 o Mã lệnh phía server using using using using using using using using using using using using BaiTapLon.ClassGetSet; BaiTapLon.DAL; Newtonsoft.Json; System; System.Collections.Generic; System.Data; System.Linq; System.Web; System.Web.Script.Services; System.Web.Services; System.Web.UI; System.Web.UI.WebControls; namespace BaiTapLon.WebForm.Web { public partial class DetailNews : System.Web.UI.Page { KetNoiAdmin cls_con = new KetNoiAdmin(); protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { if (Request.QueryString["idBaiViet"] != null) 59 { HienDetailNews(); } } } private void HienDetailNews() { BaiViet bviet = new BaiViet(); bviet.idBaiViet = int.Parse(Request.QueryString["idBaiViet"]); BaiVietDAL baiVietDAL = new BaiVietDAL(); dtlDetailNews.DataSource = baiVietDAL.LaydulieuTheoID(bviet); // dtlChiTietSanPham ID DataList dtlDetailNews.DataBind(); string sql; sql = "select idLoaiTin from tbl_BaiViet where idBaiViet = " + Request.QueryString["idBaiViet"]; String idLoaiTin = cls_con.thongkeSoLuong(sql).ToString(); sql = "select top * from tbl_BaiViet order by ThoiGianDang desc"; dtlTinTuc.DataSource = cls_con.getDataTable(sql); dtlTinTuc.DataBind(); } [WebMethod] [ScriptMethod] public static string getListComment(int idBaiViet) { KetNoiAdmin cls_con = new KetNoiAdmin(); string sql; sql = "select A.*,B.comment_sender_name as parentName from tbl_BinhLuan A left join tbl_BinhLuan B on A.parent_comment_id = B.comment_id where A.new_id = " + idBaiViet; DataTable datatable = cls_con.getDataTable(sql); var JSONresult = JsonConvert.SerializeObject(datatable); return JSONresult; } [WebMethod] [ScriptMethod] public static bool addComment(int commentId,int idBaiViet, string comment) { //Session["User_Id"] = txtDangNhap.Text; //Session["id"] = db.Rows[0]["idTaiKhoan"]; //Session["IsLogIn"] = 1; //Session["Name"] = db.Rows[0]["HoTen"]; if (HttpContext.Current.Session["User_Id"] == null) { return false; } else { BinhLuanDAL binhLuanDAL = new BinhLuanDAL(); binhLuanDAL.ChenDuLieu(commentId, idBaiViet, comment, HttpContext.Current.Session["name"].ToString(),int.Parse(HttpContext.Current.Session["id" ].ToString())); return true; } } 60 } } g.Tìm kiếm viết o Hình ảnh g.Đăng o Hình ảnh 61 o Mã lệnh phía client canchinh { width: 150px; padding-left: 10px; font-size: 15px; } txt { 62 padding: 10px; } ADD NEWS Tiêu Đề (*) Hình Ảnh Tóm Tắt (*) Nội Dung Trạng Thái 63 Hiển Thị Không Hiển Thị Thời Gian Đăng Nguồn Tin (*) Mã Loại Tin 64 o Mã lệnh phía server using using using using using using using BaiTapLon.DAL; System; System.Collections.Generic; System.Linq; System.Web; System.Web.UI; System.Web.UI.WebControls; namespace BaiTapLon { public partial class AddNew : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { txtTieuDe.Focus(); if (Session["id"] == null) { Response.Redirect("Login.aspx"); } } } protected void btnReset_Click(object sender, EventArgs e) { Response.Redirect("Add_News.aspx"); } protected void btnCancel_Click(object sender, EventArgs e) { Response.Redirect("TrangChu.aspx"); 65 } protected void btnAdd_Click(object sender, EventArgs e) { if (IsValid) { string fileName = System.IO.Path.GetFileName(FileUpload1.PostedFile.FileName); string path = Server.MapPath("~/Admin/Upload/" + fileName); FileUpload1.PostedFile.SaveAs(path); ClassGetSet.BaiViet Bviet = new ClassGetSet.BaiViet(); Bviet.TieuDe = txtTieuDe.Text; Bviet.TenAnh = "Admin/Upload/" + fileName; // FileUpload1 ID điều khiển FileUpLoad Bviet.TomTat = txtTomTat.Text; Bviet.NoiDung = CKEditorControl1.Text; Bviet.TrangThaiBaiViet = cboTrangThai.SelectedItem.Value; Bviet.ThoiGianDang = Convert.ToDateTime(textShippedDate.Text); Bviet.NguonTin = txtNguonTin.Text; Bviet.idLoaiTin = int.Parse(cboMaLoaiTin.SelectedItem.Value); Bviet.idTaiKhoan = int.Parse(Session["id"].ToString()); try { BaiVietDAL baiVietDAL = new BaiVietDAL(); baiVietDAL.ChenDuLieu(Bviet); } catch { Response.Redirect("Trangloi.aspx"); } Response.Redirect("TrangChu.aspx"); } } protected void imagebuttonDatePicker_Click(object sender, ImageClickEventArgs e) { if (calendarDatePicker.Visible) { calendarDatePicker.Visible = false; } else { calendarDatePicker.Visible = true; } } protected void calendarDatePicker_SelectionChanged(object sender, EventArgs e) { textShippedDate.Text = calendarDatePicker.SelectedDate.ToShortDateString(); calendarDatePicker.Visible = false; 66 CHƯƠNG 5: KẾT LUẬN Nhóm chưa thực chức quản lý bình luận ,và yêu cầu phi chức năng, chức lại hoạt động tốt Đánh giá ưu, nhược điểm website Ưu điểm: -Website cáo giao diện đẹp -Kết hợp client side server side đem lại trải nghiệm tốt Nhược điểm: -Cịn chức -Một số ngoại lệ chưa xử lý TÀI LIỆU THAM KHẢO Các ví dụ asp.net: http://huudungle.net/?ID=20 Tác giả: Lê Hữu Dũng Essential ASP.NET Web Forms Development: Full Stack Programming with C#, SQL, Ajax, and JavaScript 1st ed Edition Tác giả: Robert E Beasley ... varchar(10) Khóa Mã bình luận idbinhluancha varchar(10) Khóa ngoại Mã bình luận cha noidung nvarchar(max) Null Nội dung thoigian datetime Not null Thời gian idnguoidung varchar(10) Khóa ngoại Mã người... Ngày sinh sodienthoai varchar(10) Null Số điện thoại email varchar(100) Not null Email diachi nvarchar(300) Null Địa Bảng tbl_BinhLuan STT Tên thực thể Kiểu liệu Ràng buộc Mô tả idbinhluan varchar(10)... Null Tóm tắt 24 STT Tên thực thể Kiểu liệu Ràng buộc Mô tả noidung nvarchar(max) Null Nội dung trangthai bit Not null Trạng thái thoigiandang datetime Not null Thời gian đăng idloaitin varchar(10)
- ").html(comments); var reply_list = $('