Click here to Skip to main content
14,977,142 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
I have one page which contains one multiple partial pages. In each partial view there will be again multiple partial pages. When i am getting this it will add data table to ds contains three tables. how can i show it in hierarchical order??

THis is my DAL


public static ConsignmentNote GetConsignmentNoteByID(int id)
        {
            ConsignmentNote consignmentnote = null;
            SqlConnection sqlConnection = null;
            sqlConnection = SqlConnectionHelper.GetConnectionConnectionString();
            SqlCommand cmd = new SqlCommand();
            SqlDataAdapter da = new SqlDataAdapter();
            DataSet ds = new DataSet();
            try
            {
                cmd = new SqlCommand("GetConsignmentNoteByCNNoteId", sqlConnection);
                cmd.Parameters.Add(new SqlParameter("@ConsignmentNoteID", id));
                cmd.CommandType = CommandType.StoredProcedure;
                da.SelectCommand = cmd;
                da.Fill(ds);

                //First table data
                if (ds.Tables[0].Rows.Count > 0)
                {
                    DataRow row = ds.Tables[0].Rows[0];
                    consignmentnote = new ConsignmentNote(row);
                }
                else
                {
                    consignmentnote = new ConsignmentNote();
                }

                //Second table data 
                consignmentnote.LstAdditionalCN = new List<AdditionalCN>();
                int rowIndexCN = 1;

                if (ds.Tables[1].Rows.Count > 0)
                {
                    int i = 0;
                    foreach (DataRow acnRow in ds.Tables[i].Rows)
                    {                       

                        AdditionalCN objACN = new AdditionalCN();

                        objACN.ConsignmentNoteRelID = acnRow["ConsignmentNoteRelID"] as Int32? ?? 0;
                        objACN.ConsignmentNoteID = acnRow["ConsignmentNoteID"] as Int32? ?? 0;
                        objACN.ConsignmentNoteNumber = acnRow["ConsignmentNoteNumber"] as string ?? null;
                        objACN.CNDate = acnRow["CNDate"] as DateTime? ?? DateTime.MinValue;
                        objACN.ConsignerID = (acnRow["ConsignerID"] as Int32? ?? 0).ToString();
                        objACN.ConsigneeID = (acnRow["ConsigneeID"] as Int32? ?? 0).ToString();
                        objACN.LocationFrom = acnRow["LocationFrom"] as string ?? null;
                        objACN.LocationTo = acnRow["LocationTo"] as string ?? null;

                        if (rowIndexCN == 1)
                        {
                            //insert to default CNI
                            consignmentnote.ConsignmentNoteRelID = objACN.ConsignmentNoteRelID;
                            consignmentnote.ConsignmentNoteNumber = objACN.ConsignmentNoteNumber;
                        }
                        else
                        {
                            //insert to additional CNI
                            consignmentnote.LstAdditionalCN.Add(objACN);
                        }
                        rowIndexCN++;
                    }
                }

                consignmentnote.LstAdditionalInvoice = new List<AdditionalInvoice>();
                int rowIndexCNInvoice = 1;

                if (ds.Tables[2].Rows.Count > 0)
                {
                    foreach (DataRow acnRow in ds.Tables[2].Rows)
                    {
                        AdditionalInvoice objACN = new AdditionalInvoice();

                        objACN.ConsignmentNoteLineItemID = acnRow["ConsignmentNoteLineItemID"] as Int32? ?? 0;
                        objACN.ConsignmentNoteID = acnRow["ConsignmentNoteID"] as Int32? ?? 0;
                        objACN.ConsignmentNoteRelID = acnRow["ConsignmentNoteRelID"] as Int32? ?? 0;
                        objACN.ProjectPO = (acnRow["ProjectPO"] as Int32? ?? 0).ToString();
                        objACN.InvoiceNum = (acnRow["InvoiceNum"] as Int32? ?? 0).ToString();
                        objACN.InvoiceDate = acnRow["InvoiceDate"] as DateTime? ?? DateTime.MinValue;
                        objACN.Pkgs = acnRow["Pkgs"] as string ?? null;
                        objACN.Description = acnRow["Description"] as string ?? null;

                        objACN.ActualWeight = acnRow["ActualWeight"] as string ?? null;
                        objACN.ChargedWeight = acnRow["ChargedWeight"] as string ?? null;
                        objACN.InvoiceValue = acnRow["InvoiceValue"] as decimal? ?? 0;

                        if (rowIndexCNInvoice == 1)
                        {
                            //insert to default CNI
                            consignmentnote.ConsignmentNoteRelID = objACN.ConsignmentNoteRelID;
                            consignmentnote.ConsignmentNoteID = objACN.ConsignmentNoteID;
                        }
                        else
                        {
                            //insert to additional CNI
                            consignmentnote.LstAdditionalInvoice.Add(objACN);
                        }
                        rowIndexCNInvoice++;
                    }
                }

            }
            catch (Exception x)
            {
                throw x;
            }
            finally
            {

            }
            return consignmentnote;
        }


In my ds three tables come from DB shows particular record. How can i display this??


THis is my main create page:

@using TMS_Models
@model ConsignmentNote

@{
    ViewBag.Title = "Consignment Booking";
}
@{
    List<SelectListItem> VehicalList = new List<SelectListItem>();

    VehicalList.Add(new SelectListItem
    {
        Text = "Supplier",
        Value = "Supplier"
    });
    VehicalList.Add(new SelectListItem
    {
        Text = "Company",
        Value = "Company"
    });
}

<section class="content-header">
    <h1>
        @*NEW CN/LR Booking*@
        Consignment Booking
    </h1>

    <ol class="breadcrumb">
        <li><a href="#">class="fa fa-dashboard" id="supplierVehicleDiv">
                                    </div>
                                    @Html.TextBoxFor(modelItem => modelItem.ReportingDateTime, "{0:dd/MM/yyyy}", new { @class = "form-control", id = "dpReportingDateTime" })
                                    @*@Html.ValidationMessageFor(modelItem => modelItem.ReportingDateTime, "", new { @class = "text-danger" })*@
                                </div>
                            </div>
                            <div class="form-group col-md-2 col-sm-6">
                                <label> Out Date Time </label>
                                <div class="input-group date">
                                    <div class="input-group-addon">
                                        ^__i class="fa fa-calendar">
                                    </div>
                                    @Html.TextBoxFor(modelItem => modelItem.VehicleOutDateTime, "{0:dd/MM/yyyy}", new { @class = "form-control", id = "dpVehicleOutDateTime" })
                                    @*@Html.ValidationMessageFor(modelItem => modelItem.VehicleOutDateTime, "", new { @class = "text-danger" })*@
                                </div>
                            </div>
                            <div class="form-group col-md-2 col-sm-6" id="companyVehicleTypeDiv">
                                <label>Vehicle Type </label>
                                @Html.TextBoxFor(modelItem => modelItem.VehicleType, new { @class = "form-control", id = "VehicleType", placeholder = "(e.g.) TATA", maxlength = "50" })
                                @Html.ValidationMessageFor(modelItem => modelItem.VehicleType, "", new { @class = "text-danger" })
                            </div>
                            <div class="form-group col-md-2 col-sm-6" id="supplierVehicleTypeDiv" style="display:none">
                                <label>Vehicle Type </label>
                                @Html.DropDownListFor(modelItem => modelItem.SupplierVehicleType, new System.Web.Mvc.SelectList(Model.ObjConsignmentNoteValueList.SupplierVehiclesType, "SupplierVehicleType", "SupplierVehicleType", Model.SupplierVehicleType), htmlAttributes: new { @class = "form-control" })
                            </div>
                            <div class="col-md-2 col-sm-6">
                                <div class="form-group">
                                    <label>Advance Payment </label>
                                    @Html.TextBoxFor(modelItem => modelItem.AdvancePayment, new { @class = "form-control", id = "AdvancePayment", placeholder = "(e.g.) 50000", maxlength = "50", @type = "number" })
                                    @Html.ValidationMessageFor(modelItem => modelItem.AdvancePayment, "", new { @class = "text-danger" })
                                </div>
                            </div>
                        </div>
                    </div>
                </div>

                <div class="box">

                    <div class="box-body">

                        <div class=" box box-info">
                            <div class="table-responsive col-md-12">
                                <div id="divAdditionalCN0">
                                    @Html.Action("AddAdditionalCN", new { ObjconsignmentNoteCN = Model.LstAdditionalCN[0], index = 0 })
                                </div>
                            </div>
                        </div>

                        <div class="clearfix"></div>
                        <div class="box box-info" id="additionalCNdiv">
                            <h4 class="box-header">Additional Consignment Booking </h4>
                            <div id="divAddAdditional" class="table-responsive col-md-12">
                                @if (Model.LstAdditionalCN != null && Model.LstAdditionalCN.Count > 0)
                                {
                                    for (int i = 1; i < Model.LstAdditionalCN.Count; i++)
                                    {
                                        <div id="divAdditionalCN@(i)">
                                            @Html.Action("AddAdditionalCN", new { ObjconsignmentNoteCN = Model.LstAdditionalCN[i], index = i })
                                        </div>
                                    }
                                }
                            </div>
                            <button type="button" onclick="addAdditionalConsignmentNote();" id="btnAddAdditionalConsignmentNote" class="btn btn-info pull-right btnClick">class="fa fa-plus"> CN </button>
                        </div>

                    </div>
                </div>

                <div class="box">
                    <div class="box-header">
                        <h3 class="box-title"> Manifesto  </h3>
                    </div>

                    <div class="box-body">
                        <div id="divManifestoCompany" style="display:none">
                            <div class="col-md-3 col-sm-6">
                                <div class="form-group">
                                    <label>License No.</label>
                                    @Html.TextBoxFor(modelItem => modelItem.CompDriverLicenseNumber, new { @class = "form-control", placeholder = "(e.g.) DL NO. MH-1220050000188" })
                                </div>
                            </div>
                            <div class="col-md-3 col-sm-6">
                                <div class="form-group">
                                    <label>Driver Name</label>
                                    @Html.TextBoxFor(modelItem => modelItem.CompDriverName, new { @class = "form-control", placeholder = "(e.g.) Aakash" })

                                </div>
                            </div>
                            <div class="col-md-3 col-sm-6">
                                <div class="form-group">
                                    <label>Driver Phone1 </label>
                                    @Html.TextBoxFor(modelItem => modelItem.CompDriverPhone1, new { @class = "form-control", placeholder = "(e.g) 9823456780", maxlength = "10" })
                                </div>
                            </div>
                            <div class="col-md-3 col-sm-6">
                                <div class="form-group">
                                    <label>Driver Phone2 </label>
                                    @Html.TextBoxFor(modelItem => modelItem.CompDriverPhone2, new { @class = "form-control", placeholder = "(e.g.) 8791234567", maxlength = "10", @type = "number" })
                                </div>

                            </div>
                        </div>

                        <div id="divManifestoSupplier">

                            <div class="form-group col-md-3 col-sm-6">
                                <label>Supplier</label>
                                @Html.ValidationMessageFor(modelItem => modelItem.VehicleSupplierID, "", new { @class = "text-danger" })
                                <div class="input-group input-group-sm">
                                    @Html.DropDownListFor(modelItem => modelItem.VehicleSupplierID, new System.Web.Mvc.SelectList(Model.ObjConsignmentNoteValueList.SuppliersList, "SupplierID", "NickName", Model.VehicleSupplierID), "--Select--", htmlAttributes: new { @class = "form-control", @id = "drpsupplierName" })
                                    <span class="input-group-btn">  <button type="button" class="btn btn-info btn-sm" data-toggle="modal" data-target="#divAddSupplierNickName"> ^__i class="fa fa-plus"> Add  </button> </span>
                                </div>
                            </div>

                            <div class="col-md-3 col-sm-6">
                                <div class="form-group">
                                    <label>Vehicle Owner Name</label>
                                    @Html.TextBoxFor(modelItem => modelItem.OwnerName, new { @class = "form-control", placeholder = "(e.g.) Sachin" })

                                </div>
                            </div>

                            <div class="col-md-3 col-sm-6">
                                <div class="form-group">
                                    <label>Vehicle Owner Phone 1</label>
                                    @Html.TextBoxFor(modelItem => modelItem.OwnerPhone1, new { @class = "form-control", placeholder = "(e.g) 9823456780", maxlength = "10" })
                                </div>
                            </div>

                            <div class="col-md-3 col-sm-6">
                                <div class="form-group">
                                    <label>Vehicle Owner Phone 2</label>
                                    @Html.TextBoxFor(modelItem => modelItem.OwnerPhone2, new { @class = "form-control", placeholder = "(e.g) 9823456780", maxlength = "10" })
                                </div>
                            </div>

                            <div class="col-md-3 col-sm-6">
                                <div class="form-group">
                                    <label>Driver Name</label>
                                    @Html.TextBoxFor(modelItem => modelItem.SuppDriverName, new { @class = "form-control", placeholder = "(e.g.) Aakash" })

                                </div>
                            </div>

                            <div class="col-md-3 col-sm-6">
                                <div class="form-group">
                                    <label>Driver Phone 1</label>
                                    @Html.TextBoxFor(modelItem => modelItem.SuppDriverPhone1, new { @class = "form-control", placeholder = "(e.g) 9823456780", maxlength = "10" })
                                </div>
                            </div>

                            <div class="col-md-3 col-sm-6">
                                <div class="form-group">
                                    <label>Driver Phone 2</label>
                                    @Html.TextBoxFor(modelItem => modelItem.SuppDriverPhone2, new { @class = "form-control", placeholder = "(e.g) 9823456780", maxlength = "10" })
                                </div>
                            </div>

                            <div class="col-md-3 col-sm-6">
                                <div class="form-group">
                                    <label>License No.</label>
                                    @Html.TextBoxFor(modelItem => modelItem.SuppDriverLicenseNumber, new { @class = "form-control", placeholder = "(e.g.) DL NO. MH-1220050000188" })
                                    @*@Html.ValidationMessageFor(modelItem => modelItem.SuppDriverLicenseNumber, "", new { @class = "text-danger" })*@
                                </div>
                            </div>

                        </div>
                    </div>
                </div>

                <div class="box-footer">
                    <button type="submit" class="btn btn-primary btn-lg btn-flat pull-right">Submit</button>
                </div>
            }

        </div>
    </div>
</section>

<div class="modal fade" id="divAddConsignor" data-toggle="modal" data-backdrop="static" data-keyboard="false">
    <div class="modal-dialog">
        <div class="modal-content">

            <!-- Modal Header -->
            <div class="modal-header">
                <h4 class="modal-title">Add Consignor</h4>
                <button type="button" class="close" data-dismiss="modal"</button>
            </div>

            <!-- Modal body -->
            <div class="modal-body">
                <div class="table-responsive" id="divConsignorProperties">
                    <!--div for Name of the consignor-->
                    <label for="name">Name</label>
                    <input type="text" id="consignorName" required="required" class="form-control" placeholder="(e.g.) Sachin Mane" maxlength="50" />
                    <br />
                    <!--div for Nick Name of the consignor-->

                    <label for="name">Nick Name</label>
                    <input type="text" id="nickName" required="required" class="form-control" placeholder="(e.g.) Sachin" maxlength="50" />
                    <br />

                    <!--div for Phone Number of the consignor-->
                    <label for="name">Phone number</label>
                    <input type="number" required="required" class="form-control" maxlength="10" id="PhoneNo" placeholder="(e.g) 9823456780" />
                    <br />

                    <!--div for Phone Number of the consignor-->
                    <label for="name">Email</label>
                    <input type="email" required="required" class="form-control" maxlength="50" id="Email" placeholder="(e.g) test@gmail.com" />
                    <br />

                </div>
            </div>

            <!-- Modal footer -->
            <div class="modal-footer">
                <div class="row">
                    <div class="col-md-6">
                        <button type="submit" class="btn btn-info btn-flat" onclick="createConsignor()">Add</button>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

<div class="modal fade" id="divAddConsignee" data-toggle="modal" data-backdrop="static" data-keyboard="false">
    <div class="modal-dialog">
        <div class="modal-content">

            <div class="modal-header">
                <h4 class="modal-title">Add Consignee</h4>
                <button type="button" class="close" data-dismiss="modal"</button>
            </div>

            <div class="modal-body">
                <div class="table-responsive" id="divConsignorProperties">
                    <label for="name">Name</label>
                    <input type="text" id="consigneeName" required="required" class="form-control" placeholder="(e.g.) Sachin Mane" maxlength="50" />
                    <br />

                    <label for="name">Nick Name</label>
                    <input type="text" id="ConsigneeNickName" required="required" class="form-control" placeholder="(e.g.) Sachin" maxlength="50" />
                    <br />

                    <label for="name">Phone number</label>
                    <input type="number" required="required" class="form-control" maxlength="10" id="ConsigneePhoneNo" placeholder="(e.g) 9823456780" />
                    <br />

                    <label for="name">Email</label>
                    <input type="email" required="required" class="form-control" maxlength="50" id="ConsigneeEmail" placeholder="(e.g) test@gmail.com" />
                    <br />

                </div>
            </div>

            <div class="modal-footer">
                <div class="row">
                    <div class="col-md-6">
                        <button type="submit" class="btn btn-info btn-flat" onclick="createConsignee()">Add</button>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

<div class="modal fade" id="divAddCity" data-toggle="modal" data-backdrop="static" data-keyboard="false">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <h4 class="modal-title">Add City</h4>
                <button type="button" class="close" data-dismiss="modal"</button>
            </div>

            <div class="modal-body">
                <div class="table-responsive" id="divConsignorProperties">
                    <label for="name">City Name</label>
                    <input type="text" id="cityName" required="required" class="form-control" placeholder="(e.g.) Pune" maxlength="30" />
                    <br />
                </div>
            </div>

            <div class="modal-footer">
                <div class="row">
                    <div class="col-md-6">
                        <button type="submit" class="btn btn-info btn-flat" onclick="createCity()">Add</button>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

<div class="modal fade" id="divAddSupplierNickName" data-toggle="modal" data-backdrop="static" data-keyboard="false">
    <div class="modal-dialog">
        <div class="modal-content">

            <div class="modal-header">
                <h4 class="modal-title">Add Supplier</h4>
                <button type="button" class="close" data-dismiss="modal"</button>
            </div>

            <div class="modal-body">
                <div class="table-responsive" id="divSupplierProperties">
                    <label for="name">Name</label>
                    <input type="text" id="supplierName" required="required" class="form-control" placeholder="(e.g.) Sachin Mane" maxlength="50" />
                    <br />

                    <label for="name">Nick Name</label>
                    <input type="text" id="supplierNickName" required="required" class="form-control" placeholder="(e.g.) Sachin" maxlength="50" />
                    <br />

                    <label for="name">Phone number</label>
                    <input type="number" required="required" class="form-control" maxlength="10" id="supplierPhoneNo" placeholder="(e.g) 9823456780" />
                    <br />

                    <label for="name">Email</label>
                    <input type="email" required="required" class="form-control" maxlength="50" id="supplierEmail" placeholder="(e.g) test@gmail.com" />
                    <br />

                </div>
            </div>

            <div class="modal-footer">
                <div class="row">
                    <div class="col-md-6">
                        <button type="submit" class="btn btn-info btn-flat" onclick="createSupplier()">Add</button>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

@section scripts{

    <script type="text/javascript">
        var addcountCN = @(Model.LstAdditionalCN==null?0: Model.LstAdditionalCN.Count);
        var addcountInv = @(Model.LstAdditionalInvoice==null?0: Model.LstAdditionalInvoice.Count);

        function onChangeId($this) {
            var companyVehicleID = $($this).val();
            if (companyVehicleID != undefined && companyVehicleID != null) {
                $.ajax({
                    url: '/ConsignmentNote/GetVehicleTypeByID',
                    type: 'POST',
                    datatype: 'application/json',
                    contentType: 'application/json',
                    data: JSON.stringify({ companyVehicleID: companyVehicleID }),
                    success: function (result) {
                        if (result != undefined && result != null && result.Status != null) {
                            $("#VehicleType").val(result.Status);
                        }

                    },
                    error: function () { alert("Whooaaa! Something went wrong..") },
                });
            }
        }

        var $currDrpdn;
        $(document).ready(function () {
            $('#frmInsertConsignmentNote').on('click', 'button[data-target][data-toggle]', function () {
                $btn = $(this);
                $currDrpdn = $btn.closest('div').find('select');
            });

            //to add invoice details
            addRow(this);

            $("#drpcompanyvehical").change(function () {
                showHideManifestoOn_CompSuppVehicalChange();
            });

            showHideManifestoOn_CompSuppVehicalChange();

            $(document).on("focus", "#dpRegistrationDate", function () { $(this).datepicker(); });

            $(document).on("focus", "#invoiceDate", function () { $(this).datepicker(); });

            $('#frmInsertConsignmentNote').submit(function () {
                //below code used to skip validation on action method

                if ($(this).valid()) {
                    if ($('#drpcompanyvehical').val() == 'Supplier') {
                        $('#drpCompVehNo option:first').attr('value', '0');
                    } else if ($('#drpcompanyvehical').val() == 'Company') {
                        $('#txtSuppVehNo').val('No Data');
                        $('#drpsupplierName option:first').attr('value', '0');
                    }
                }
            });

        });

        $(function () {
            var today = new Date();


            $('#dpReportingDateTime').datepicker({
                changeMonth: true,
                changeYear: true,
                dateFormat: 'dd/mm/yy',
                autoclose: true
            }).on('changeDate', function (ev) {
                $(this).datepicker('hide');
                $('#dpVehicleOutDateTime').datepicker("setDate", ev.date);
                $('#dpRegistrationDate').datepicker("setDate", ev.date);
                $('#invoiceDate').datepicker("setDate", ev.date);
            }).datepicker("setDate", today);

            $('#dpVehicleOutDateTime').datepicker({
                changeMonth: true,
                changeYear: true,
                dateFormat: 'dd/mm/yy',
                autoclose: true
            }).on('changeDate', function (ev) {
                $(this).datepicker('hide');
                $('#dpRegistrationDate').datepicker("setDate", ev.date);
                $('#invoiceDate').datepicker("setDate", ev.date);
                }).datepicker("setDate", today);

            $('#dpRegistrationDate').datepicker({
                changeMonth: true,
                changeYear: true,
                dateFormat: 'dd/mm/yy',
                autoclose: true,
            }).on('changeDate', function (ev) {
                $(this).datepicker('hide');
                $('#invoiceDate').datepicker("setDate", ev.date);
            }).datepicker("setDate", today);

            $('#invoiceDate').datepicker({
                changeMonth: true,
                changeYear: true,
                dateFormat: 'dd/mm/yy',
                autoclose: true,
            }).on('changeDate', function (ev) {
                $(this).datepicker('hide');
            }).datepicker("setDate", today);
        });

        function addAdditionalConsignmentNote($this) {

            var addcountCN = $($this).prev().find('div[data-cn]').length + 1;

            $("#divAddAdditional").append('<div id="divAdditionalCN' + addcountCN + '"></div>');

            var param = { ConsignerID: $('#drpConsignorName').val(), ConsigneeID: $('#drpConsigneeName').val(), CNDate: $('#dpRegistrationDate').val(), LocationFrom: $('#drpDownFrom').val(), LocationTo: $('#drpDownTo').val(), index: addcountCN };

            $("#divAdditionalCN" + addcountCN).load('@Url.Action("AddAdditionalCN", "ConsignmentNote")', param);

            addcountCN++;
        }

        function addAdditionalInv($this) {
            var $btn = $($this);

            var $divCNMain = $btn.closest('div[data-cn]');
            var $divAdditionalInv = $divCNMain.find('#divAddAdditionalInv');

            var addcountInv = parseInt($divAdditionalInv.find('div[data-invoice]').last().find('#hdnInvIndex').val())+ 1;
            var currCnIndex = $divCNMain.find('#hdnCnIndex').val();
            
            var param = { InvoiceDate: $('#dpRegistrationDate').val(), cnindex: currCnIndex ,  index: addcountInv };
            
            getPartialPageData('AddAdditionalInvoice', 'ConsignmentNote', param, function (data) {
                $divAdditionalInv.append(data);
            }, true);
        }

        function showHideManifestoOn_CompSuppVehicalChange() {
            var val = $('#drpcompanyvehical').val();
            if (val == "Company") {
                $("#divManifestoSupplier").hide('slow');
                $("#divManifestoCompany").show();
                $("Div#supplierVehicleDiv").hide();
                $("#companyVehicleDiv").show();
                $("#companyVehicleTypeDiv").show();
                //$("#VehicleType").val('');
                $("#supplierVehicleTypeDiv").hide();

            } else {
                //$("select#ComapnayVehicleNO").change();
                $("#companyVehicleDiv").hide();
                $("Div#supplierVehicleDiv").show();
                $("#divManifesto").show();
                $("#divManifestoCompany").hide('slow');
                $("#divManifestoSupplier").show();
                $("#companyVehicleTypeDiv").hide();
                $("#supplierVehicleTypeDiv").show();

            }
        }

        function createConsignor() {
            var name = $("#consignorName").val();
            var nickName = $("#nickName").val();
            var phone = $("#PhoneNo").val();
            var email = $("#Email").val();
            var regex = /^([\w-\.]+@@([\w-]+\.)+[\w-]{2,4})?$/;
            if (name === "") {
                showErrorBar("Name required");
                return false;
            }

            if (nickName === "") {
                showErrorBar("NickName required");
                return false;
            }

            if (phone === "") {
                showErrorBar("Phone no required");
                return false;
            }
            if (phone.length != 10) {
                showErrorBar("Please enter 10 digit mobile no.");
                return false;
            }

            if (email === "") {
                showErrorBar("Email required");
                return false;

            }
            if (!regex.test(email)) {
                showErrorBar("Valid Email required");
                return false;
            }

            var consignor = {
                Name: name,
                NickName: nickName,
                PhoneOne: phone,
                Email: email
            };

            $.ajax({
                url: '/ConsignmentNote/SaveConsigner',
                type: 'POST',
                contentType: 'application/json',
                data: JSON.stringify({ consignor: consignor }),
                success: function (result) {
                    if (result != undefined && result != false && result.NickName != null) {
                        var $opt = $('<option></option>').val(result.id).html(result.NickName);

                        $("#frmInsertConsignmentNote").find("select#drpConsignorName").append($opt);

                        $currDrpdn.find('option:last').prop('selected', true);

                        $("button.close").click();
                    }
                },
                error: function () { showErrorBar("Whooaaa! Something went wrong..") },
            });
        }

        function createConsignee() {
            var name = $("#consigneeName").val();
            var nickName = $("#ConsigneeNickName").val();
            var phone = $("#ConsigneePhoneNo").val();
            var email = $("#ConsigneeEmail").val();
            var regex = /^([\w-\.]+@@([\w-]+\.)+[\w-]{2,4})?$/;

            if (name === "") {
                showErrorBar("Name required");
                return false;
            }

            if (nickName === "") {
                showErrorBar("NickName required");
                return false;
            }

            if (phone === "") {
                showErrorBar("Phone no required");
                return false;
            }
            if (phone.length != 10) {
                showErrorBar("Please enter 10 digit mobile no.");
                return false;
            }

            if (email === "") {
                showErrorBar("Email required");
                return false;

            }
            if (!regex.test(email)) {
                showErrorBar("Valid Email required");
                return false;
            }

            var consignee = {
                Name: name,
                NickName: nickName,
                PhoneOne: phone,
                Email: email
            };

            $.ajax({
                url: '/ConsignmentNote/SaveConsignee',
                type: 'POST',
                contentType: 'application/json',
                data: JSON.stringify({ consignee: consignee }),
                success: function (result) {
                    if (result != undefined && result != false && result.NickName != null) {
                        $("#frmInsertConsignmentNote").find("select#drpConsigneeName").append($('<option></option>').val(result.id).html(result.NickName));
                        $currDrpdn.find('option:last').prop('selected', true);
                        $("button.close").click();
                    }
                },
                error: function () { showErrorBar("Whooaaa! Something went wrong..") },
            });
        }

        function createCity() {
            var cityName = $("#cityName").val();

            if (cityName === "") {
                showErrorBar("City Name required");
                return false;
            }
            if (cityName.length < 2) {
                showErrorBar("City Name can not less than two character");
                return false;
            }

            $.ajax({
                url: '/ConsignmentNote/SaveCity',
                type: 'POST',
                contentType: 'application/json',
                data: JSON.stringify({ CityName: cityName }),
                success: function (result) {
                    if (result != undefined && result != false && result.CityName != null) {
                        $("#frmInsertConsignmentNote").find("select#drpDownTo,select#drpDownFrom").append($('<option></option>').val(result.id).html(result.CityName));
                        $currDrpdn.find('option:last').prop('selected', true);

                        $("button.close").click();
                    }
                }
            });

        }

        function createSupplier() {

            var name = $("#supplierName").val();
            var nickName = $("#supplierNickName").val();
            var phone = $("#supplierPhoneNo").val();
            var email = $("#supplierEmail").val();

            if (name === "") {
                showErrorBar("Name required");
                return false;
            }

            if (nickName === "") {
                showErrorBar("NickName required");
                return false;
            }

            if (phone === "") {
                showErrorBar("Phone no required");
                return false;
            }

            if (email === "") {
                showErrorBar("Email required");
                return false;
            }

            var supplier = {
                Name: name,
                NickName: nickName,
                PhoneOne: phone,
                Email: email
            };

            $.ajax({
                url: '/ConsignmentNote/SaveSupplier',
                type: 'POST',
                contentType: 'application/json',
                data: JSON.stringify({ supplier: supplier }),
                success: function (result) {
                    if (result != undefined && result != false && result.NickName != null) {
                        var mySelect = $("#drpsupplierName");
                        mySelect.append($('<option selected></option>').val(result.id).html(result.NickName));

                        $("button.close").click();
                    }
                },
                error: function () { showErrorBar("Whooaaa! Something went wrong..") },
            });
        }

        function bindDataTypes() {
            $('td[data-field=Actual] input').attr('type', 'number');
            $('td[data-field=Charged] input').attr('type', 'number');
            $('td[data-field=InvoiceNO] input').attr('type', 'number');
            $('td[data-field=InvoiceValue] input').attr('type', 'number');
            $('td[data-field=InvoiceDate] input').datepicker({ format: 'dd-MM-yy', autoclose: true }).on('changeDate', function (ev) {
                $(this).datepicker('hide');
            }).attr('readonly', 'true');
        }

        function removeRow($this) {
            showConfirmationBar("Remove invoice?", "Are you sure you want to remove this invoice ?", "OK", "Cancel", "");
            $("#OK").unbind('click');
            $("#OK").bind('click', function () {
                $($this).closest('tr').remove();
                if ($("#consignmentDivTableBody").find('tr').length == 0) {
                    var $newTr = $(document.createElement('tr'));
                    $newTr.attr('id', 'norecords');
                    $newTr.html('<td colspan="9">No records found</td>');
                    $newTr.appendTo("#consignmentDivTableBody");
                }
                $("#ConfirmationBar").hide();
            });
            $("#Cancel").unbind('click');
            $("#Cancel").bind('click', function () {
                var confBar = document.getElementById("ConfirmationBar");
                confBar.style.display = 'none';
            });
            return false;
        }

        function removeRow($this) {

            $($this).closest('tr').remove();
            if ($("#consignmentDivTableBody").find('tr').length == 0) {
                var $newTr = $(document.createElement('tr'));
                $newTr.attr('id', 'norecords');
                $newTr.html('<td colspan="9">No records found</td>');
                $newTr.appendTo("#consignmentDivTableBody");
            }
        }

        function addRow($this) {
            if ($("tr#norecords").length > 0) {
                $("tr#norecords").remove();
            }
            var $newTr = $(document.createElement('tr'));
            $newTr.attr('data-id', '1');
            $newTr.html('<td data-field="Project"></td>' +
                '<td data-field="InvoiceNO"></td>' +
                '<td data-field="InvoiceDate"></td>' +
                '<td data-field="Package"></td>' +
                '<td data-field="Description"></td>' +
                '<td data-field="Actual"></td>' +
                '<td data-field="Charged"></td>' +
                '<td data-field="InvoiceValue"></td>' +
                '<td class="text-right">' +
                '<a class="btn btn-default btn-xs edit"> </a>' +
                '<a class="btn btn-default btn-xs" onclick="removeRow(this)"> ^__i class="fa fa-trash"></a>');

            $newTr.appendTo("#consignmentDivTableBody");
            bindEditablePlugin();
        }

        function unbindDataTypes() {
            $('td[data-field=InvoiceDate] input').datepicker("destroy");
        }

        function bindEditablePlugin() {
            $('tbody tr').editable({
                keyboard: true,
                dblclick: true,
                button: true,
                buttonSelector: ".edit",
                maintainWidth: true,
                dropdowns: {
                    // sex: ['Male', 'Female']
                },
                edit: function (values) {
                    $(".edit i", this).removeClass('fa-pencil').addClass('fa-save').attr('title', 'Save');
                    bindDataTypes();
                },
                save: function (values) {
                    $(".edit i", this).removeClass('fa-save').addClass('fa-pencil').attr('title', 'Edit');
                    var id = $(this).data('id');
                    var value = values;
                    unbindDataTypes();
                },
                remove: function (values) {
                    unbindDataTypes();
                },
                cancel: function (values) {
                    $(".edit i", this).removeClass('fa-save').addClass('fa-pencil').attr('title', 'Edit');
                    unbindDataTypes();
                }
            });
        }

        function deleteCurrentCN($btn) {
            showConfirmationBar("Remove Additional Booking Consignment?", "Are you sure you want to remove this additional booking consignment ?", "OK", "Cancel", "");
            $("#OK").unbind('click');
            $("#OK").bind('click', function () {
                $btn = $($btn);
                $btn.closest('div[data-invoice]').remove();
                $("#ConfirmationBar").hide();
            });
            $("#Cancel").unbind('click');
            $("#Cancel").bind('click', function () {
                var confBar = document.getElementById("ConfirmationBar");
                confBar.style.display = 'none';
            });
            return false;
        }
    </script>

}


This is parent partial page:

@using TMS_Models
@model AdditionalCN
@{
    ConsignmentNoteValueList ObjConsignmentNoteValueList = ViewBag.ObjConsignmentNoteValueList;
}

<section>
    @*<button type="button" onclick="deleteCurrentCN(this)" class="btn btn-danger btn-flat btninfo pull-right">class="fa fa-trash"> Delete </button>*@
    <div class="row">

        <div class="box-body box-info box-body-padding">
            <div class=" col-md-12" data-cn="true">
                <div class="form-group col-md-2 col-sm-6">
                    <label for="name">CN No</label>
                    <input type="hidden" id="hdnCnIndex" name="LstAdditionalCN.index" value="@ViewBag.index" />
                    @Html.HiddenFor(p => p.ConsignmentNoteID, new { name = "LstAdditionalCN[" + ViewBag.index + "].ConsignmentNoteID" })
                    @Html.HiddenFor(p => p.ConsignmentNoteRelID, new { name = "LstAdditionalCN[" + ViewBag.index + "].ConsignmentNoteRelID" })

                    @Html.TextBoxFor(modelItem => modelItem.ConsignmentNoteNumber, new { @class = "form-control", Name = "LstAdditionalCN[" + ViewBag.index + "].ConsignmentNoteNumber", placeholder = "1234567", maxlength = "50", @type = "number" })
                    @Html.ValidationMessageFor(modelItem => modelItem.ConsignmentNoteNumber, "", new { @class = "text-danger" })
                </div>
                <div class="form-group col-md-2">
                    <label>Date </label>
                    <div class="input-group date">
                        <div class="input-group-addon">
                            class="fa fa-calendar">
                        </div>
                        @Html.TextBoxFor(modelItem => modelItem.CNDate, "{0:dd/MM/yyyy}", new { @class = "form-control", Name = "LstAdditionalCN[" + ViewBag.index + "].CNDate", id = "dpRegistrationDate", })
                        @*@Html.ValidationMessageFor(modelItem => modelItem.CNDate, "", new { @class = "text-danger" })*@
                    </div>
                </div>
                <div class="form-group col-md-2 col-sm-6">
                    <label for="name">Consignor Nick Name</label>
                    <div class="input-group input-group-sm">
                        @Html.DropDownListFor(modelItem => modelItem.ConsignerID, new System.Web.Mvc.SelectList(ObjConsignmentNoteValueList.ConsignorNameList, "ConsignorID", "NickName", Model.ConsignerID), "--Select--", htmlAttributes: new { @class = "form-control", Name = "LstAdditionalCN[" + ViewBag.index + "].ConsignerID", @id = "drpConsignorName" })
                        <span class="input-group-btn">  <button type="button" class="btn btn-info btn-sm" data-toggle="modal" data-target="#divAddConsignor"> class="fa fa-plus"> </button> </span>
                    </div>
                </div>
                <div class="form-group col-md-2 col-sm-6">
                    <label for="">Consignee Nick Name</label>
                    <div class="input-group input-group-sm">
                        @Html.DropDownListFor(modelItem => modelItem.ConsigneeID, new System.Web.Mvc.SelectList(ObjConsignmentNoteValueList.ConsigneeNameList, "ConsigneeID", "NickName", Model.ConsigneeID), "--Select--", htmlAttributes: new { @class = "form-control", Name = "LstAdditionalCN[" + ViewBag.index + "].ConsigneeID", @id = "drpConsigneeName" })
                        <span class="input-group-btn">   <button type="button" class="btn btn-info btn-sm" data-toggle="modal" data-target="#divAddConsignee"> class="fa fa-plus"></button> </span>
                    </div>
                </div>
                <div class="form-group col-md-2 col-sm-6">
                    <label for="customerNo">Location From</label>
                    <div class="input-group input-group-sm">
                        @Html.DropDownListFor(modelItem => modelItem.LocationFrom, new System.Web.Mvc.SelectList(ObjConsignmentNoteValueList.CitiesList, "CityID", "CityName", Model.LocationFrom), "--Select--", htmlAttributes: new { @class = "form-control", Name = "LstAdditionalCN[" + ViewBag.index + "].LocationFrom", @id = "drpDownFrom" })
                        <span class="input-group-btn">  <button type="button" class="btn btn-info btn-sm" data-toggle="modal" data-target="#divAddCity"> class="fa fa-plus"></button> </span>
                    </div>
                </div>
                <div class="form-group col-md-2 col-sm-6">
                    <label for="customerNo">Location To</label>
                    <div class="input-group input-group-sm">

                        @Html.DropDownListFor(modelItem => modelItem.LocationTo, new System.Web.Mvc.SelectList(ObjConsignmentNoteValueList.CitiesList, "CityID", "CityName", Model.LocationTo), "--Select--", htmlAttributes: new { @class = "form-control", Name = "LstAdditionalCN[" + ViewBag.index + "].LocationTo", @id = "drpDownTo" })
                        <span class="input-group-btn">  <button type="button" class="btn btn-info btn-sm" data-toggle="modal" data-target="#divAddCity"> class="fa fa-plus"></button> </span>
                    </div>
                </div>

                <div id="divAddAdditionalInv0" class="table-responsive col-md-12">
                </div>

                <div id="divAddAdditionalInv" class="table-responsive col-md-12">
                    @Html.Action("AddAdditionalInvoice", new { ObjconsignmentNote = 0, cnindex = ViewBag.index, index = 0 })

                    @if (Model.LstAdditionalInvoice != null && Model.LstAdditionalInvoice.Count > 0)
                    {
                        for (int i = 1; i < Model.LstAdditionalInvoice.Count; i++)
                        {
                            @Html.Action("AddAdditionalInvoice", new { ObjconsignmentNote = Model.LstAdditionalInvoice[i], cnindex = ViewBag.index, index = i })
                        }
                    }
                </div>

                <button type="button" onclick="addAdditionalInv(this);" id="btnAddAdditionalInvoice" class="btn btn-info pull-right btnClick">
                    class="fa fa-plus">
                    Invoice
                </button>

            </div>
        </div>

    </div>
</section>

@section  scripts{
    <script type="text/javascript">

    </script>
}


And this is the child partial page:

@using TMS_Models
@model AdditionalInvoice

@{
    ConsignmentNoteValueList ObjConsignmentNoteValueList = ViewBag.ObjConsignmentNoteValueList;
}

<section>
    <div class="row">
        <div>
            <div>
                <div class="box-body box-body-padding">

                    <div class="col-md-12" data-invoice="true">
                        <div class="form-group col-md-1 col-sm-6">
                            <label for="name">Project/PO</label>
                            <input type="hidden" name="LstAdditionalInvoice.index" value="@ViewBag.index" />
                            @{ var ind = ViewBag.index;
                                var cnind = ViewBag.cnindex;
                            }
                            <input type="hidden" id="hdnInvIndex" name="LstAdditionalCN[@ViewBag.cnindex].LstAdditionalInvoice.index" value="@ind" />

                            @Html.HiddenFor(p => p.ConsignmentNoteRelID, new { Name = "LstAdditionalCN[" + ViewBag.cnindex + "].LstAdditionalInvoice[" + ViewBag.index + "].ConsignmentNoteRelID" })
                            @Html.TextBoxFor(modelItem => modelItem.ProjectPO, new { Name = "LstAdditionalCN[" + ViewBag.cnindex + "].LstAdditionalInvoice[" + ViewBag.index + "].ProjectPO", @class = "form-control", placeholder = "", maxlength = "30" })
                        </div>
                        <div class="form-group col-md-2 col-sm-6">
                            <label for="name" >Invoice No</label>
                            @Html.TextBoxFor(modelItem => modelItem.InvoiceNum, new { Name = "LstAdditionalCN[" + ViewBag.cnindex + "].LstAdditionalInvoice[" + ViewBag.index + "].InvoiceNum", Value = Model.InvoiceNum == null ? "" : Model.InvoiceNum.ToString(), @class = "form-control", placeholder = "", maxlength = "30" })
                        </div>

                        <div class="form-group col-md-2 col-sm-6">
                            <label>Invoice Date </label>
                            <div class="input-group date">
                                <div class="input-group-addon">
                                    class="fa fa-calendar">
                                </div>
                                @Html.TextBoxFor(modelItem => modelItem.InvoiceDate, "{0:dd/MM/yyyy}", new { @class = "form-control", Name = "LstAdditionalCN[" + ViewBag.cnindex + "].LstAdditionalInvoice[" + ViewBag.index + "].InvoiceDate", id = "invoiceDate", @value = DateTime.Now.ToShortDateString() })
                            </div>
                        </div>
                        <div class="form-group col-md-1 col-sm-6">
                            <label for="name">Pkgs</label>
                            @Html.TextBoxFor(modelItem => modelItem.Pkgs, new { @class = "form-control", placeholder = "", maxlength = "30", Name = "LstAdditionalCN[" + ViewBag.cnindex + "].LstAdditionalInvoice[" + ViewBag.index + "].Pkgs" })
                        </div>
                        <div class="form-group col-md-1 col-sm-6">
                            <label for="name">Description</label>
                            @Html.TextBoxFor(modelItem => modelItem.Description, new { @class = "form-control", placeholder = "", maxlength = "30", Name = "LstAdditionalCN[" + ViewBag.cnindex + "].LstAdditionalInvoice[" + ViewBag.index + "].Description" })
                        </div>
                        <div class="form-group col-md-1 col-sm-6">
                            <label for="name">Actual wt</label>
                            @Html.TextBoxFor(modelItem => modelItem.ActualWeight, new { @class = "form-control", placeholder = "", maxlength = "30", Name = "LstAdditionalCN[" + ViewBag.cnindex + "].LstAdditionalInvoice[" + ViewBag.index + "].ActualWeight" })
                        </div>
                        <div class="form-group col-md-1 col-sm-6">
                            <label for="name" class="txt-font-charg">Charged wt</label>
                            @Html.TextBoxFor(modelItem => modelItem.ChargedWeight, new { @class = "form-control", placeholder = "", maxlength = "30", Name = "LstAdditionalCN[" + ViewBag.cnindex + "].LstAdditionalInvoice[" + ViewBag.index + "].ChargedWeight" })
                        </div>
                        <div class="form-group col-md-2 col-sm-6">
                            <label for="name">Invoice Value</label>
                            @Html.TextBoxFor(modelItem => modelItem.InvoiceValue, new { Value = Model.InvoiceValue == 0 ? "" : Model.InvoiceValue.ToString(), @class = "form-control", placeholder = "", maxlength = "30", Name = "LstAdditionalCN[" + ViewBag.cnindex + "].LstAdditionalInvoice[" + ViewBag.index + "].InvoiceValue" })
                        </div>


                        <button type="button" onclick="deleteCurrentCN(this)" style="margin-top: 24px;" class="btn btn-danger btn-flat btninfo pull-right">class="fa fa-trash"> </button>
                    </div>
                </div>
            </div>
        </div>
    </div>
</section>

@section  scripts{
    <script type="text/javascript">

    </script>
}


What I have tried:

I tried using loop and lst but i m new to MVC so i cant get it properly
Posted
Updated 14-Jul-21 22:56pm
v3
Comments
David_Wimbley 28-Nov-18 14:05pm
   
Can you add the html/razor/cshtml portion of your code as well so we can see what you've attempted?
faisal23 29-Nov-18 5:03am
   
Hi David,

I added cshtml pages.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)




CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900