Làm trang Admin của mr Cường đúng là thảm họa - thầy hướng dẫn một đằng, thầy copy và paste một nẻo, âu cũng là sự nhầm nhọt sang trồng trọt trong 178 trang của thầy.
Phi Y tôi sau bao thời gian nghiền văn ngẫm, xin mạo muội post một số lỗi như sau:
1 - EditCategory.aspx , ở file EditCategory.aspx.cs
đây là code của thầy:
Các bạn chú ý cái phần code màu đỏ nhé - code như vậy có mà đến tết công gô bạn ấn nút save nó mới chạy.
Bạn nên sửa lại như sau:
cid chính là cái Category bạn truyền vào, vì vậy, bạn dùng biến lblID để lưu trữ lại ID của Category cần cập nhật thì tốt hơn hết là lưu lại cái thằng cid.
Như vậy, cái hàm GetData bên dưới cũng phải sửa:
Xong 1 lỗi - bây giờ bạn cập nhật - thêm Category thoải mái.
Phi Y tôi sau bao thời gian nghiền văn ngẫm, xin mạo muội post một số lỗi như sau:
1 - EditCategory.aspx , ở file EditCategory.aspx.cs
đây là code của thầy:
- Code:
private void PopulateControls()
{
// Lay danh sach Category dua vao DropDownList (DDL)
// Dat value cho DDL la truong CategoryID
ddlCategory.DataValueField = "CategoryID";
// Dat phan hien thi (text) la truong Name
ddlCategory.DataTextField = "Name";
ddlCategory.DataSource = Category.All();
ddlCategory.DataBind();
string cid = Request.QueryString["cid"] ?? "";
// Neu co QueryString cid ==> cap nhat Product
if (cid != "")
{
// Lay Product theo gia tri cid
Product data = Product.Single(cid);
// Khong ton tai Product nay trong he thong
// chuyen huong ve trang Product.aspx
if (data == null)
Response.Redirect("~/Admin/Product.aspx");
// Nguoc lai thi dua du lieu vao form de tien hanh cap nhap
// Dat ten trang web
lblTitle.Text = "Edit Product";
[COLOR="Red"]// Luu lai gia tri ID cua Product hien dang cap nhat
lblId.Text = data.ProductID.ToString(); [/COLOR]
// Gan cac thong tin con lai vao form
txtName.Text = data.Name;
txtDes.Text = data.Description;
txtPrice.Text = data.Price.HasValue ? data.Price.Value.ToString() : "";
lblImage.Text = data.Image;
lblThumnail.Text = data.Thumbnail;
chkPromoFront.Checked = data.PromoFront.GetValueOrDefault(false);
ddlCategory.SelectedValue = data.CategoryID.ToString();
btnReset.Visible = false;
}
else
{
// Khong co QueryString cid ==> them moi Product
// Dat ten trang web
lblTitle.Text = "Add Product";
// Hien nut reset (xoa trang form de nhap lai)
btnReset.Visible = true;
}
}
Các bạn chú ý cái phần code màu đỏ nhé - code như vậy có mà đến tết công gô bạn ấn nút save nó mới chạy.
Bạn nên sửa lại như sau:
- Code:
private void PopulateControls()
{
string cid = Request.QueryString["cid"] ?? "";
// Nếu có QueryString cid thì cập nhật Category
if (cid != "")
{
// Lấy category theo cid
Category data = Category.Single(cid);
[COLOR="red"]lblId.Text = cid;[/COLOR]
// Nếu không tồn tại category
// chuyển hướng về trang Category.aspx
if (data == null)
{
Response.Redirect("~/Admin/Category.aspx");
return;
}
lblTitle.Text = "Edit Category";
txtName.Text = data.Name;
txtDes.Text = data.Description;
btnReset.Visible = false;
}
else
{
//Thêm mới
lblTitle.Text = "Add Category";
btnReset.Visible = true;
}
}
cid chính là cái Category bạn truyền vào, vì vậy, bạn dùng biến lblID để lưu trữ lại ID của Category cần cập nhật thì tốt hơn hết là lưu lại cái thằng cid.
Như vậy, cái hàm GetData bên dưới cũng phải sửa:
- Code:
private Category GetData()
{
Category data = new Category();
try
{
data.CategoryID = int.Parse(lblId.Text);
}
catch
{
data.CategoryID = 0;
}
data.Name = txtName.Text;
data.Description = txtDes.Text;
return data;
}
Xong 1 lỗi - bây giờ bạn cập nhật - thêm Category thoải mái.
Được sửa bởi Secretary_It'sMe ngày Wed Apr 13, 2011 10:44 am; sửa lần 1.