Từ 1 tới 8 trên tổng số 8 kết quả

Đề tài: Dùng control label để hiển thị nội dung thông báo, nhưng k thể hiển thị được?

  1. #1
    Ngày gia nhập
    03 2010
    Bài viết
    6

    Smile Dùng control label để hiển thị nội dung thông báo, nhưng k thể hiển thị được?

    Mình có 1 control label đặt tên là lbThongBao, đặt thuộc tính text ="" để nhận câu thông báo "Dữ liệu đang được dùng" nếu điệu kiện trong hàm if (trong devGrid_CustomCallback) thỏa. Khi debug thì label nhận được giá trị text nhưng không hiển thị ra khi chạy. Xin mọi người giúp ạ!

    Code:
     public partial class DanhMucSP_List : System.Web.UI.UserControl
        {
            string msg;
            protected void Page_Load(object sender, EventArgs e)
            {
                msg = "";
                LoadData();
            }
    
            protected void LoadData()
            {
                string sSQL = "SELECT * FROM CATEGORY WHERE parentID is NULL ORDER BY OrderID";
                DataTable dt = QLADO.ExecDT(sSQL, null);
                this.devGrid.KeyFieldName = "CatID";
                this.devGrid.DataSource = dt;
                this.devGrid.DataBind();
                dt.Dispose();
                this.lbThongBao.Text = msg;
            }
    
            protected void devGrid_CustomCallback(object sender, DevExpress.Web.ASPxGridView.ASPxGridViewCustomCallbackEventArgs e)
            {
                List<object> keyValues = devGrid.GetSelectedFieldValues("CatID");
                foreach (object key in keyValues)
                {
                    if (e.Parameters == "Delete")
                    {
                        //if (QLADO.CheckID("PRODUCT", "CatID", key.ToString()))
                        QLFields AParams = new QLFields();
                        AParams.Add("ID", key.ToString());
                        string sSQL = "SELECT COUNT (*) FROM CATEGORY where parentID = @ID";
                        DataTable dtcheckhaschild = QLADO.ExecDT(sSQL, AParams);
    
                        if (int.Parse(dtcheckhaschild.Rows[0][0].ToString()) != 0)
                        {
                            msg = QLFuncs.MsgBox("ERR", "Dữ liệu đang được dùng!");
                        }
                        else
                        {
                            QLADO.ExecNonQuery("DELETE FROM CATEGORY WHERE CatID='" + key.ToString() + "'", null);
                            
                        }
                    }
                }
                LoadData();
            }
    Đã được chỉnh sửa lần cuối bởi phanduy246 : 01-09-2011 lúc 12:36 PM.

  2. #2
    Ngày gia nhập
    04 2011
    Bài viết
    5

    mình nghĩ bạn nên để this.lbThongBao.Text = msg;trong
    if (int.Parse(dtcheckhaschild.Rows[0][0].ToString()) != 0)
    {
    msg = QLFuncs.MsgBox("ERR", "Dữ liệu đang được dùng!");
    }
    bỏ this.lbThongBao.Text = msg; trong method LoadData()

  3. #3
    Ngày gia nhập
    04 2010
    Nơi ở
    Trên hành tinh thứ ba tính từ Mặt trời
    Bài viết
    202

    Mỗi lần trang web của bạn Load thì nó lại gán msg="" cho nên cái Label của bạn luôn là rỗng...
    Microsoft Student Partner
    University of Information Technology - VNUHCM
    Visit my blog: My power is my mind

  4. #4
    Ngày gia nhập
    08 2011
    Nơi ở
    Yên Bái- Hà Nội
    Bài viết
    961

    hi. Bạn xuân chiến nói đúng đó. vì mỗi lần load thì hàm page_load luôn hoạt động. Mình thường lưu giá trị vào session để khỏi bị mất. Khi xài thì lôi từ session ra. bạn thử xem

  5. #5
    Ngày gia nhập
    08 2011
    Nơi ở
    Hồ Chí Minh
    Bài viết
    29

    Đổi
    Code:
    msg = QLFuncs.MsgBox("ERR", "Dữ liệu đang được dùng!");
    thành
    Code:
    this.lbThongBao.Text = QLFuncs.MsgBox("ERR", "Dữ liệu đang được dùng!");
    Có 2 điều mình muốn hỏi bạn:
    1. Về kiến thức nền tảng thôi, PageLoad sẽ dc load trước hay Event handling sảy ra trước. Nếu bạn hiểu được cái này thì bạn sẽ biết tại sao code của bạn chạy không đúng (bạn có thể tìm hiểu trên http://msdn.microsoft.com/en-us/library/ms178472.aspx).
    2. Về phong cách code, sao tự nhiên khai báo biến msg chi vậy. Trong khi bạn có nguyên cái control Label đó rồi. Như vậy mình cảm thấy phí đi 1 vùng nhớ thôi. Tại vì mục đích của bạn cuốc cùng cũng đưa vào LabelID.Text, mà bạn đặt ra 1 biến trung gian, nên không biết bạn tính làm cái gì đó cao siêu hơn chăng )
    Bạn cho mình mượn một cánh tay để cùng nhau phát triển ngành CNTT VN được không ?
    Website: http://thuc.com.vn
    Email: info@thuc.com.vn
    Yahoo: thucdongle
    Phone number: 0122.3038.563

  6. #6
    Ngày gia nhập
    08 2011
    Nơi ở
    Yên Bái- Hà Nội
    Bài viết
    961

    Mặc định Dùng control label để hiển thị nội dung thông báo, nhưng k thể hiển thị được?

    he. Mỗi cái thông báo:" dữ liệu đang được dùng thì chỗ:
    Code:
           msg = QLFuncs.MsgBox("ERR", "Dữ liệu đang được dùng!");
    thay bằng:
    Code:
       Response.write("<script> alert('dữ liệu đang được dùng');</script>");
    thế cho nhanh dùng label làm gì cho mệt.hihi

  7. #7
    Ngày gia nhập
    03 2010
    Bài viết
    6

    Trích dẫn Nguyên bản được gửi bởi ledongthuc Xem bài viết
    Đổi
    Có 2 điều mình muốn hỏi bạn:
    1. Về kiến thức nền tảng thôi, PageLoad sẽ dc load trước hay Event handling sảy ra trước. Nếu bạn hiểu được cái này thì bạn sẽ biết tại sao code của bạn chạy không đúng (bạn có thể tìm hiểu trên http://msdn.microsoft.com/en-us/library/ms178472.aspx).
    Đúng là pageLoad được load trước, do đó label k thể hiển thị đc.Hi hi!

    Trích dẫn Nguyên bản được gửi bởi ledongthuc Xem bài viết
    Đổi
    2. Về phong cách code, sao tự nhiên khai báo biến msg chi vậy. Trong khi bạn có nguyên cái control Label đó rồi. Như vậy mình cảm thấy phí đi 1 vùng nhớ thôi. Tại vì mục đích của bạn cuốc cùng cũng đưa vào LabelID.Text, mà bạn đặt ra 1 biến trung gian, nên không biết bạn tính làm cái gì đó cao siêu hơn chăng )
    Cảm ơn bạn góp ý! ^^

  8. #8
    Ngày gia nhập
    03 2010
    Bài viết
    6

    Trích dẫn Nguyên bản được gửi bởi mrfour.it Xem bài viết
    he. Mỗi cái thông báo:" dữ liệu đang được dùng thì chỗ:
    Code:
           msg = QLFuncs.MsgBox("ERR", "Dữ liệu đang được dùng!");
    thay bằng:
    Code:
       Response.write("<script> alert('dữ liệu đang được dùng');</script>");
    thế cho nhanh dùng label làm gì cho mệt.hihi
    Cảm ơn bạn! Mình sẽ thử! ^^

Các đề tài tương tự

  1. cách dùng panel che đi label
    Gửi bởi thanhgola trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 1
    Bài viết cuối: 03-06-2013, 08:59 AM
  2. ADO.NET Label bị trắng khi dùng với ProgressBar
    Gửi bởi minhquan8338 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 7
    Bài viết cuối: 11-05-2013, 03:41 PM
  3. Xin hoi cách sử dung control fileUpload !!!
    Gửi bởi depzai trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 0
    Bài viết cuối: 06-11-2012, 12:33 AM
  4. Làm thế nào dùng HttpWebRequest tạo lại trang có nội dung giống như của WebBrowser Control
    Gửi bởi rossoneri trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 0
    Bài viết cuối: 14-06-2012, 04:08 PM
  5. hỏi cách move giữa các control thay vì dùng tab ta dùng Enter
    Gửi bởi r3z0lee trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 1
    Bài viết cuối: 11-06-2012, 07:55 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn