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);
if (ds.Tables[0].Rows.Count > 0)
{
DataRow row = ds.Tables[0].Rows[0];
consignmentnote = new ConsignmentNote(row);
}
else
{
consignmentnote = new ConsignmentNote();
}
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)
{
consignmentnote.ConsignmentNoteRelID = objACN.ConsignmentNoteRelID;
consignmentnote.ConsignmentNoteNumber = objACN.ConsignmentNoteNumber;
}
else
{
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)
{
consignmentnote.ConsignmentNoteRelID = objACN.ConsignmentNoteRelID;
consignmentnote.ConsignmentNoteID = objACN.ConsignmentNoteID;
}
else
{
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');
});
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 () {
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();
$("#supplierVehicleTypeDiv").hide();
} else {
$("#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: {
},
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