在MVC中获取多个嵌套的部分视图 [英] Get multiple nested partial views in MVC

查看:78
本文介绍了在MVC中获取多个嵌套的部分视图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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="#"> Home</a></li>
        <li class="active"> Consignment Booking  </li>
    </ol>

    @*<button type="submit" class="btn btn-primary btn-lg btn-flat pull-right">Submit</button>*@
</section>

<section class="content">
    <div class="row">
        <div class="col-xs-12">
            @using (Html.BeginForm("SaveConsignmentNoteDetail", "ConsignmentNote", FormMethod.Post, new { @id = "frmInsertConsignmentNote" }))
            {

                @Html.HiddenFor(model => model.ConsignmentNoteID)
                @Html.HiddenFor(model => model.ConsignmentNoteRelID)
                @Html.HiddenFor(model => model.ConsignmentNoteNumber)

                <div class="box">
                    <div class="box-header">
                        <h3 class="box-title">Booking Consignment</h3>
                    </div>
                    <div class="box-body">
                        <div class="col-md-12">
                            <div class="form-group col-md-2 col-sm-6 ">

                                <div class="input-group input-group-sm select-vehicle">
                                    <label>Vehicle</label>
                                    @Html.DropDownListFor(model => model.CompanyVehicle, VehicalList, "-- Select --", htmlAttributes: new { @class = "form-control", @id = "drpcompanyvehical" })

                                </div>
                                @Html.ValidationMessageFor(model => model.CompanyVehicle, "", new { @class = "text-danger" })
                            </div>

                            <div id="supplierVehicleDiv" class="form-group col-md-2 col-sm-6">
                                <label>Vehicle No </label>
                                @Html.TextBoxFor(modelItem => modelItem.VehicleNo, new { @class = "form-control", placeholder = " MH-12 AB 2015", maxlength = "50", @id = "txtSuppVehNo" })
                                @Html.ValidationMessageFor(modelItem => modelItem.VehicleNo, "", new { @class = "text-danger" })
                            </div>
                            <div class="form-group col-md-2 col-sm-6" id="companyVehicleDiv" style="display:none">
                                <label>Vehicle No </label>
                                @Html.DropDownListFor(modelItem => modelItem.ComapnayVehicleNO, new System.Web.Mvc.SelectList(Model.ObjConsignmentNoteValueList.vehicleList, "CompanyVehicleID", "VehicleNo", Model.ComapnayVehicleNO), "-- Select --", htmlAttributes: new { @class = "form-control", onchange = "onChangeId(this); ", @id = "drpCompVehNo" })
                                @Html.ValidationMessageFor(modelItem => modelItem.ComapnayVehicleNO, "", new { @class = "text-danger" })
                            </div>
                            <div class="form-group col-md-2 col-sm-6">
                                <label class="txt-resp">Reporting Date Time </label>
                                <div class="input-group date">
                                    <div class="input-group-addon">
                                        
                                    </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">
                                        
                                    </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"> 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">  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)"> </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:





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"> 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">
                            
                        </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">  </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"> </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"> </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"> </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">
                    
                    Invoice
                </button>

            </div>
        </div>

    </div>
</section>

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

    </script>
}





And this is the child partial page:





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">
                                    
                                </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"> </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



What I have tried:

I tried using loop and lst but i m new to MVC so i cant get it properly

推荐答案

this) {
var companyVehicleID =
this) { var companyVehicleID =


(


this).val();
if (companyVehicleID != undefined && companyVehicleID != null) {
this).val(); if (companyVehicleID != undefined && companyVehicleID != null) {


这篇关于在MVC中获取多个嵌套的部分视图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆