Cách xử lý column null trong table khi dùng ajax jquery asp.net mvc5

Xin chào.
Mong mọi người giúp đỡ mình với, mình load danh sách hóa đơn lên bị null ngay cột đó, mình muốn nó phải thành 1 ô trống.
Code

  • Controller
// GET: HOADONs
[HttpGet]
public JsonResult DSHD()
{
    try
    {
        var join = (from phong in db.Phongs
                    join dien in db.Congtodiens on phong.ID_PHONG equals dien.ID_PHONG into dien1
                    from d in dien1.DefaultIfEmpty()

                    join nuoc in db.Congtonuocs on phong.ID_PHONG equals nuoc.ID_PHONG into nuoc1
                    from n in nuoc1.DefaultIfEmpty()

                    join hoadon in db.Hoadons on phong.ID_PHONG equals hoadon.ID_PHONG into hoadon1
                    from h in hoadon1.DefaultIfEmpty()

                    join dongia in db.Dongias on h.ID_DONGIA equals dongia.ID_DONGIA into dongia1
                    from d1 in dongia1.DefaultIfEmpty()

                    where (phong.ID_PHONG == h.ID_PHONG)
                    select new HD()
                    {
                        ID_HOADON = h.ID_HOADON,
                        MAPHONG = phong.MAPHONG,
                        MADAYPHONG = phong.Dayphong.MADAYPHONG,
                        DIEN_CHISODAU = d.CHISODAU,
                        DIEN_CHISOCUOI = d.CHISOCUOI,
                        CHISODIEN = d.CHISOCUOI - d.CHISODAU,
                        DONGIADIEN = d1.DONGIADIEN,
                        THANHTIEN_DIEN = (d.CHISOCUOI - d.CHISODAU) * d1.DONGIADIEN,
                        NUOC_CHISODAU = n.CHISODAU,
                        NUOC_CHISOCUOI = n.CHISOCUOI,
                        DONGIANUOC = d1.DONGIANUOC,
                        CHISONUOC = n.CHISOCUOI - n.CHISODAU,
                        THANHTIEN_NUOC = (n.CHISOCUOI - n.CHISODAU) * d1.DONGIANUOC,
                        THANG = h.THANG,
                        NAM = h.NAM, 
                        TRANGTHAI = h.TRANGTHAI,
                        THANHTIEN = (d.CHISOCUOI - d.CHISODAU) * d1.DONGIADIEN + (n.CHISOCUOI - n.CHISODAU) * d1.DONGIANUOC

                    }).ToList();

        return Json(new { code = 200, join = join, msg = "Lấy danh sách lớp thành công!" }, JsonRequestBehavior.AllowGet);
    }
    catch (Exception e)
    {
        return Json(new
        {
            code = 500,
            msg = "Lấy danh sách cán bộ thất bại:" + e.Message
        }, JsonRequestBehavior.AllowGet);
    }
}
  • View
@model IEnumerable<TestHD.Models.HD>
@{
    ViewBag.Title = "Index";
    Layout = "~/Areas/Admin/Views/Shared/_LayoutAdmin.cshtml";
}

<h2>Danh sách Hóa đơn</h2>
<table class="table" border="1">
    <thead>
        <tr>
            <th> Mã dãy phòng</th>
            <th>Mã phòng</th>
            <th>Điện tháng trước</th>
            <th>Điện tháng này</th>
            <th>Chỉ số điện</th>
            <th>Đơn giá điện</th>
            <th>Tiền điện</th>
            <th>Nước tháng trước</th>
            <th>Nước tháng này</th>
            <th>Chỉ số nước</th>
            <th>Đơn giá nước</th>
            <th>Tiền nước</th>
            <th>Tháng</th>
            <th>Năm</th>
            <th>Trạng thái</th>
            <th>Thành tiền</th>
            <th>Thao tác</th>
        </tr>

    </thead>
    <tbody id="tableHD"></tbody>
</table>



@section scripts{
    <script>

        //xử lý function LoadDsCanBo bên dưới
        $(document).ready(function () {
            LoadDsHD();
        });

        //phần ajax xử lý giao diện index cán bộ
        function LoadDsHD() {
            //dùng ajax để load danh sách lớp trong controller CanBo
            $.ajax({
                url: '/HD/DSHD',
                type: 'get',
                success: function (data) {

                    /* console.log(data);*/
                    if (data.code == 200) {
                       
                        $('#tableHD').empty();
                        $.each(data.join, function (k, v) {
                            let tr = '<tr id="' + v.ID_HOADON + '">'
                            tr += '<td>' + v.MADAYPHONG + '</td>';
                            tr += '<td>' + v.MAPHONG + '</td>';
                            tr += '<td>' + v.DIEN_CHISODAU + '</td>';
                            tr += '<td>' + v.DIEN_CHISOCUOI + '</td>';
                            tr += '<td>' + v.CHISODIEN + '</td>';
                            tr += '<td>' + v.DONGIADIEN + '</td>';
                            tr += '<td>' + v.THANHTIEN_DIEN + '</td>';
                            tr += '<td>' + v.NUOC_CHISODAU + '</td>';
                            tr += '<td>' + v.NUOC_CHISOCUOI + '</td>';
                            tr += '<td>' + v.CHISONUOC + '</td>';
                            tr += '<td>' + v.DONGIANUOC + '</td>';
                            tr += '<td>' + v.THANHTIEN_NUOC + '</td>';
                            tr += '<td>' + v.THANG + '</td>';
                            tr += '<td>' + v.NAM + '</td>';
                            tr += '<td>' + v.TRANGTHAI + '</td>';
                            tr += '<td>' + v.THANHTIEN + '</td>';
                            tr += '</tr>';
                            if (data.CHISODIEN == null) {
                                data.CHISODIEN = '0';
                                $("#CHISODIEN").text(data.CHISODIEN);
                            }
                           
                            $('#tableHD').append(tr);
                            
                        });
                    }
                }
            });

        }
    </script>
}
  • Model :
public class HD
{
     //tạo hóa đơn

    public int ID_HOADON { get; set; }
    public int ID_PHONG { get; set; }
    public int ID_DAY { get; set; }

    public int ID_DONGIA { get; set; }
    public int ID_DIEN { get; set; }
    public int ID_NUOC { get; set; }
    public int? DIEN_CHISODAU { get; set; }

    public int? DIEN_CHISOCUOI { get; set; }
    public int? NUOC_CHISODAU { get; set; }
    public int? NUOC_CHISOCUOI { get; set; }
    public int MADONGIA { get; set; }

    public double DONGIADIEN { get; set; }

    public double DONGIANUOC { get; set; }
    public string MADAYPHONG { get; set; }
    public string MAPHONG { get; set; }
    public int? THANG { get; set; }

    public int? NAM { get; set; }

    public string TRANGTHAI { get; set; }

    // tính tiền
    public double? CHISODIEN { get; set; }
    public double? CHISONUOC { get; set; }
    public double? THANHTIEN { get; set; }
    public double? THANHTIEN_DIEN { get; set; }
    public double? THANHTIEN_NUOC { get; set; }

}

Ủa, nhập môn lập trình nào mà không có thao tác với chuỗi: tìm kiếm và thay thế, bạn làm đi chứ có gì mà khó, hổng lẽ nhận về không muốn chữ null thì cứ thế in ra, ta thay thế là xong.

5 Likes

Chúc mừng bạn đã áp dụng được kỹ thuật AJAX kể từ những bài post trước.
Vấn đề này quay về bài toán xử lý chuỗi. Xử lý text thường có 3 cách:

  • Sử dụng các function prototype của String.
  • regex.
  • Dùng toán tử ternary.

Trường hợp này chỉ cần ẩn hiện thì sử dụng ternary và falsy

const foo = baz ? baz : null ;
1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?