Json 实现数据添加/更新 的页面效果
以上为实现的效果截图
HTML代码如下:
<%@ Page Language="C#" MasterPageFile="~/Admin/MasterIndex.master" AutoEventWireup="true"
CodeFile="SellOpt.aspx.cs" Inherits="bssm_Sell_SellOpt" Title="销售签单" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
<link type="text/css" rel="stylesheet" href="http://www.cnblogs.com/js/showwinmin1css/css.css" />
<script type="text/javascript" src="http://www.cnblogs.com/js/Global.js"></script>
<script type="text/javascript" src="http://www.cnblogs.com/js/jquery-1.2.6.js"></script>
<script type="text/javascript" src="http://www.cnblogs.com/js/jquery-layer.js"></script>
<script type="text/javascript" src="http://www.cnblogs.com/js/json.js"></script>
<script type="text/javascript" src="http://www.cnblogs.com/js/Date.js"></script>
<script type="text/javascript" src="http://www.cnblogs.com/js/My97DatePicker/WdatePicker.js"></script>
<script>
var purID = '<%=string.IsNullOrEmpty(Request.QueryString["ID"])?"":Request.QueryString["ID"]%>';
var hidToProduct = '<%=hidToProduct.ClientID %>';
var txtToname = '<%=txtToname.ClientID %>';
var txtShouldReceive = '<%=txtShouldReceive.ClientID %>';
var hidProductCount = '<%=hidProductCount.ClientID %>';
var hidtoCustomer = '<%=hidtoCustomer.ClientID %>';
var hidToUser = '<%=hidToUser.ClientID %>';
var txtContractNO = '<%=txtContractNO.ClientID %>';
var hidPdtModels = '<%=hidPdtModels.ClientID %>'
</script>
<script type="text/javascript" src="http://www.cnblogs.com/js/SellOpt.js"></script>
<script type="text/javascript" src="http://www.cnblogs.com/js/prototype.js"></script>
<asp:HiddenField ID="hidPdtModels" runat="server" />
<asp:HiddenField ID="hidToProduct" runat="server" />
<asp:HiddenField ID="hidtoCustomer" runat="server" />
<asp:HiddenField ID="hidToUser" runat="server" />
<asp:HiddenField ID="hidProductCount" runat="server" />
<asp:HiddenField ID="hidpPay" runat="server" />
<asp:HiddenField ID="txtToname" runat="server"></asp:HiddenField>
<asp:TextBox ID="txtShouldReceive" runat="server" Style="display: none;"></asp:TextBox>
<div class="infotit">
<h2>
销售签单</h2>
<Leixun:loginInfo runat="server" ID="loginInfo1" />
</div>
<!--info tit -->
<div class="editbar">
<asp:Button ID="btnSave" runat="server" Text="保存" OnClick="btnSave_Click" CssClass="btn"
OnClientClick="return gettrcount()" />
<input class="btn" οnclick="javascript:window.location='SellList.aspx';" type="button"
value="销售单列表" />
</div>
<!--edit bar -->
<div style="border: 1px solid #ccc; border-bottom: none">
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="bartb">
<tr>
<td>
销售编号:<asp:TextBox ID="txtContractNO" class="n_input" runat="server"></asp:TextBox></td>
<td>
经手人<span class="fc_red">*</span>:
<asp:TextBox ID="txtToUser" runat="server" ReadOnly="True" class="n_input"></asp:TextBox><image
src="http://www.cnblogs.com/admin/ui/s2.gif" style="cursor: pointer;" οnclick="showsentence('http://www.cnblogs.com/module/userselect.aspx?NO=<%=hidToUser.ClientID %>&name=<%=txtToUser.ClientID %>&Type=radio')" /><image
style="cursor: pointer;" οnclick="showsentence('http://www.cnblogs.com/module/useradd.aspx?sid=<%=hidToUser.ClientID %>&name=<%=txtToUser.ClientID %>')"
src="http://www.cnblogs.com/admin/ui/s1.gif" /><asp:RequiredFieldValidator ID="RequiredFieldValidator2"
runat="server" ErrorMessage="销售员不能为空" ControlToValidate="txtToUser" Display="Dynamic"></asp:RequiredFieldValidator></td>
<td rowspan="2" valign="top">
备注:
<asp:TextBox ID="txtMemo" TextMode="MultiLine" runat="server" Style="width: 240px;
height: 50px; vertical-align: text-top"></asp:TextBox>
</td>
</tr>
<tr>
<td>
客 户 <span class="fc_red">*</span> :<asp:TextBox ID="txtToCustomer" runat="server"
ReadOnly="True" class="gys_input"></asp:TextBox><image style="cursor: pointer;" src="http://www.cnblogs.com/admin/ui/s2.gif"
οnclick="showsentence('http://www.cnblogs.com/module/CustomerSelect.aspx?NO=<%=hidtoCustomer.ClientID %>&name=<%=txtToCustomer.ClientID %>&type=radio')" /><image
style="cursor: pointer;" οnclick="showsentence('http://www.cnblogs.com/module/CustomerAdd.aspx?sid=<%=hidtoCustomer.ClientID %>&name=<%=txtToCustomer.ClientID %>')"
src="http://www.cnblogs.com/admin/ui/s1.gif" /></td>
<td>
签单日期<span class="fc_red">*</span>:
<asp:TextBox ID="txtCreator" CssClass="Wdate" runat="server" Width="167px" οnfοcus="new WdatePicker(this,'%Y-%M-%D %h:%m:%s',true)"></asp:TextBox>
</td>
</tr>
</table>
<div id="ctrltable" class="editbar2">
[<a href="javascript:void(0)" οnclick="addsingle()">新增行</a>] [<a href="javascript:void(0)"
οnclick="removeall()">删除所有行</a>]
</div>
<!--editbar2 -->
</div>
<!--top heights -->
<div style="height: 40%; overflow: auto; border: 1px solid #ccc;" id="changediv">
<table class="datalist2" id="tbProduct" style="width: 98%;" cellspacing="1">
<tr>
<th>
名称</th>
<th style="width: 200px">
规格</th>
<th style="width: 80px">
数量</th>
<th style="width: 80px">
单价</th>
<th style="width: 80px">
金额</th>
<th style="width: 120px">
到货日期</th>
<th style="width: 80px">
库存</th>
<th style="width: 80px">
已送货数</th>
<th style="width: 40px">
操作</th>
</tr>
</table>
</div>
<!--content -->
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="heji">
<tr>
<td width="62%">
合计:<asp:TextBox ID="txthejiCount" ReadOnly="true" runat="server" Width="100px"></asp:TextBox>
</td>
<td width="19%">
</td>
<td width="19%">
金额:<asp:TextBox ID="txthejoTotal" ReadOnly="true" runat="server" Width="100px"></asp:TextBox>
</td>
</tr>
</table>
<div class="footbar">
制单人:<%=LeixunOA.UI.UserInfo.GetUserInfo().RealName %>
制单时间:<%=DateTime.Now.ToShortDateString() %>
</div>
<!--footbar -->
<div class="editbar">
<asp:Button ID="Button1" runat="server" Text="保存" OnClick="btnSave_Click" CssClass="btn"
OnClientClick="return gettrcount()" />
<input class="btn" οnclick="javascript:window.location='SellList.aspx';" type="button"
value="销售单列表" />
</div>
<!--edit bar -->
</asp:Content>
JS代码如下:
var trTemplate = '<tr><td><input type="hidden" /><input class="n_input" readonly = "readonly" style="width: 85%" type="text" /><image style="cursor: hand;" src="http://www.cnblogs.com/admin/ui/s2.gif" /></td><td><input readonly="readonly" class="n_input" style="width:90%;" type="text" /></td><td><input class="n_input" style="width:90%;" type="text" value="0" /></td><td><input class="n_input" style="width:90%;" type="text" /></td><td><input class="n_input" readonly="readonly" style="width:90%;" type="text" /></td><td><input readonly="readonly" οnfοcus="new WdatePicker(this,null,false)" class="n_input" style="width:90%;" type="text" /></td><td><input class="n_input" readonly="readonly" style="width:90%;" type="text" /></td><td><input class="n_input" readonly="readonly" style="width:90%;" value="0" type="text" /></td><td><a href="javascript:void(0)" οnclick="jQuery(this).parent().parent().remove()">删除</a></td></tr>';
var alldelid ="";
var alldelname ="";
jQuery(document).ready(function(){
jQuery("form").submit(Form_Submit);
RenderProduct();
});
function RenderProduct()
{
if(jQuery("#" + hidPdtModels).val() == "") return;
var models = jQuery.parseJSON(jQuery("#" + hidPdtModels).val());
jQuery(models).each(function(i,model){
addsingle();
jQuery("#tbProduct tr:last td:not(:first,:last)").removeAttr("disabled");
jQuery("#tbProduct tr:last td:eq(0) input[type='hidden']").val(model.pdtID);
jQuery("#tbProduct tr:last td:eq(0) input[type='text']").val(model.ProductName);
jQuery("#tbProduct tr:last td:eq(1) input[type='text']").val(model.pNo);
jQuery("#tbProduct tr:last td:eq(2) input[type='text']").val(model.pdtCount);
jQuery("#tbProduct tr:last td:eq(3) input[type='text']").val(model.pdtPrice);
jQuery("#tbProduct tr:last td:eq(4) input[type='text']").val(model.pdtPrice*model.pdtCount);
jQuery("#tbProduct tr:last td:eq(5) input[type='text']").val(model.arriveTime != null?model.arriveTime.Format("yyyy-MM-dd"):"");
jQuery("#tbProduct tr:last td:eq(6) input[type='text']").val(model.stockCount);
jQuery("#tbProduct tr:last td:eq(7) input[type='text']").val(model.pPartInvCount);
switch(model.pdtStatus)
{
case 0:
//jQuery("#tbProduct tr:last td:last").html("");
break;
case 1:
jQuery("#tbProduct tr:last td:last").html("已送货");
break;
default:
jQuery("#tbProduct tr:last td:last").html("部分送货");
break;
}
});
}
function Form_Submit()
{
if(jQuery("#"+hidtoCustomer).val() == "")
{
alert("请选择销售客户!");
return false;
}
if(jQuery("#"+hidToUser).val() == "")
{
alert("请选择经手人!");
return false;
}
if(jQuery("#"+txtContractNO).val() == "")
{
alert("请填写编号!");
return false;
}
var submitFlag = true;
var models = new Array();
jQuery("#tbProduct tr:gt(0)").each(function(i){
var model = new Object();
model.pdtID = jQuery(this).find("td:eq(0) input[type='hidden']").val();
model.pdtCount = jQuery(this).find("td:eq(2) input[type='text']").val();
model.pdtPrice = jQuery(this).find("td:eq(3) input[type='text']").val();
model.arriveTime = jQuery(this).find("td:eq(5) input[type='text']").val();
if(isNaN(parseInt(model.pdtID)))
{
alert("请先选择产品!");
submitFlag = false;
return false;
}
if(isNaN(parseFloat(model.pdtCount)))
{
alert("请输入数量!");
submitFlag = false;
return false;
}
if(isNaN(parseFloat(model.pdtPrice)))
{
alert("请输入单价!");
submitFlag = false;
return false;
}
if(model. arriveTime == "")
{
alert("请输入到货时间!");
submitFlag = false;
return false;
}
models.push(model);
})
if(models.length == 0)
submitFlag = false;
var strModels = jQuery.toJSON(models);
jQuery("#" + hidPdtModels ).val(strModels);
return submitFlag;
}
function showsentence(urls)
{
var Url = urls;
jQuery.layerSetup({
id:"sentence",
title:"",
width:700,
height:320,
content:'<iframe id="frm_sentence" src='+Url+' frameborder="0" height="100%" width="100%" ></iframe>',
isbg:true
});
jQuery.layershow();
}
function removeli(id,name)
{
var llid = id;
if(name==null)
{
// alert(jQuery("#"+id).children(1).children().html());
// alert(jQuery("#"+id).children(1).next().children()[0].value);
id = jQuery("#"+llid).children(1).children().html();
name = jQuery("#"+llid).children(1).next().children()[0].value;
}
jQuery("#"+llid).empty();
jQuery("#ul1 tr").remove("#"+llid);
jQuery("#"+hidToProduct)[0].value = jQuery("#"+hidToProduct)[0].value.replace(id + ",","");
jQuery("#"+txtToname)[0].value = jQuery("#"+txtToname)[0].value.replace(name + ",","");
}
function removeall()
{
//jQuery("#ul1").children().not("#thd").empty();
jQuery("#ul1 tr").not("#hd").remove();
jQuery("#"+hidToProduct)[0].value = alldelid;
jQuery("#"+txtToname)[0].value = alldelname;
CalculateSum();
}
function addsingle()
{
jQuery("#tbProduct").append(trTemplate);
jQuery("#tbProduct tr:last td:eq(0) img").click(pdtImage_Click);
jQuery("#tbProduct tr:last td:eq(2) input[type='text'],#tbProduct tr:last td:eq(3) input[type='text']").blur(Caculate_TotalCharge).keydown(function(e){jQuery(e.target).val(jQuery(e.target).val().replace(/[^0-9^.^\-^]/g,'')); });
jQuery("#tbProduct tr:last td:not(:last,:first)").attr("disabled","disabled");
}
function Caculate_TotalCharge(e)
{
try{
var tr = jQuery(e.target).parent().parent();
var charge = parseFloat(tr.find("td:eq(2) input[type='text']").val()) * parseFloat(tr.find("td:eq(3) input[type='text']").val())
charge = isNaN(charge)?"0":charge
jQuery(tr).find("td:eq(4) input[type='text']").val(charge);
var totalCount=totalCharge = 0;
jQuery("#tbProduct tr:gt(0)").each(function(i,model){
totalCharge += parseFloat(jQuery(this).find("td:eq(4) input[type='text']").val());
totalCount += parseFloat(jQuery(this).find("td:eq(2) input[type='text']").val());
})
totalCharge = isNaN(totalCharge)?"0":totalCharge;
totalCount = isNaN(totalCount)?"0":totalCount;
jQuery("input[type='text'][id*='txthejoTotal']").val(totalCharge);
jQuery("input[type='text'][id*='txthejiCount']").val(totalCount);
}
catch(ex){}
}
function pdtImage_Click(e)
{
jQuery("#hidPdtID,#txtPdtName").removeAttr("id");
var hidPdtID = jQuery(e.target).parent().parent().find("td:eq(0) input[type='hidden']")
var txtPdtName = jQuery(e.target).parent().parent().find("td:eq(0) input[type='text']")
hidPdtID.attr("id","hidPdtID");
txtPdtName.attr("id","txtPdtName");
showsentence('http://www.cnblogs.com/module/ProductSelectDiv.aspx?NO=hidPdtID&name=txtPdtName&type=radio&urlele=1&returnFunc=hidPdtID_Change')
}
function hidPdtID_Change()
{
if(jQuery("#hidPdtID").val() == "") return;
jQuery("#hidPdtID").parent().parent().find("td:not(:first,:last)").removeAttr("disabled");
try {
jQuery.ajax({
type: "GET",
url: "http://www.cnblogs.com/ajax/Product.aspx",
data: { "Type": "GetModelByID", "ID":jQuery("#hidPdtID").val() },
cache: false,
dataType: "json",
success: function(model) {
if(model == null) return;
var tr = jQuery("#hidPdtID").parent().parent();
tr.find("td:eq(1) input[type='text']").val(model.pNO);
tr.find("td:eq(3) input[type='text']").val(model.pOutPrice);
tr.find("td:eq(6) input[type='text']").val(model.stockCount);
}
});
}
catch(ex){}
}
function choosesingle(xlid)
{
showsentence("http://www.cnblogs.com/module/ProductSelectDiv.aspx?NO="+hidToProduct+"&type=radio&type=radio&name="+txtToname+"&lid="+xlid);
}
function gettrcount()
{
/*
if(jQuery("#"+hidToProduct).val() == "")
{
alert("请添加相应产品!");
return false;
}
jQuery("#"+hidProductCount)[0].value = jQuery("#ul1 tr").not("#hd:first").length + 2;
for(var i = 0;i<jQuery("#ul1 tr").not("#hd:first").length + 2;i++)
{
if(!ValidPrice(jQuery("#txtCount" + i)))
{
alert("请输入数字类型!");
return false;
}
if(!ValidPrice(jQuery("#txtPrice" + i)))
{
alert("请输入数字类型!");
return false;
}
}*/
}
function CalculateSum()
{
jQuery("#"+txtShouldReceive)[0].value = "0.00";
for(var i = 0;i<jQuery("#ul1 tr").not("#hd:first").length + 2;i++)
{
var count = jQuery("#txtCount" + i);
var price = jQuery("#txtPrice" + i);
if(count.length != 0 && price.length != 0)
{
var pay = parseFloat(count[0].value) * parseFloat(price[0].value);
jQuery("#"+txtShouldReceive)[0].value = parseFloat(jQuery("#"+txtShouldReceive)[0].value) +(isNaN(pay)==true?0.00:pay);
}
}
jQuery("#sptotal")[0].innerText = jQuery("#"+txtShouldReceive)[0].value;
}
function chknum(i)
{
var minnum = jQuery("#spCount"+i)[0].innerText;
var realnum = jQuery("#txtCount"+i)[0].value;
if(parseFloat(realnum) < parseFloat(minnum))
{
alert("数量不得小于已入库数!");
jQuery("#txtCount"+i)[0].focus();
}
}
function ValidPrice(txtPriceObj)
{
//var txtPriceObj=jQuery("#"+id);
if(txtPriceObj.length!=0)
{
var val=parseFloat(txtPriceObj[0].value.trim()*1.0);
if(isNaN(val))
{
return false;
}
else
{
return true;
}
}
else
{
return true;
}
}
后台代码如下:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text;
using LeixunOA.BLL;
using LeixunOA.Model;
using LeixunOA.UI;
using LeixunOA.Common;
using Newtonsoft.Json;
using System.Collections.Generic;
public partial class bssm_Sell_SellOpt : LeixunOA.UI.AdminPage
{
public string adminname = string.Empty;
SellContract model;
SellContractBLL bll;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (UserInfo.GetRoleId() != 0)
{
adminname = "超级管理员";
}
else
{
adminname = LeixunOA.UI.UserInfo.GetUserInfo().RoleNames;
}
//ControlData.BindEnumStatus(rdoType, typeof(EnumDefine.SellType));
//ControlData.BindingCommon(ddlContractType, "t_sysCode", "codeID", "codeName", " parentNO = 'ContractType'", " codeOrder desc ", string.Empty, "--请选择合同类型--", string.Empty);
//ControlData.BindEnumStatus(rdoinvoiceStatus, typeof(EnumDefine.invoiceStatus));
//rdoinvoiceStatus.Items[0].Selected = true;
txtCreator.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
if (!string.IsNullOrEmpty(Request.QueryString["ID"]))
{
//txtReceived.Enabled = false;
txtContractNO.Enabled = false;
bll = new SellContractBLL();
model = bll.GetModel(ConvertData.ToInt(Request.QueryString["ID"]));
if (model != null)
{
txtContractNO.Text = model.scNO;
//rdoType.SelectedValue = model.pClassType.ToString();
txtToCustomer.Text = model.CustomerName;
hidtoCustomer.Value = model.scCustomerID.ToString();
txtToname.Value = model.pProductName;
hidToProduct.Value = model.pProducctID;
txthejoTotal.Text = model.pcShouldReceive.ToString();
hidpPay.Value = model.pcReceived.ToString();
//rdoinvoiceStatus.SelectedValue = model.invoiceStatus.ToString();
txtToUser.Text = model.UserName;
hidToUser.Value = model.scUserID.ToString();
if (model.scAutoTime != null)
{
txtCreator.Text = model.scAutoTime.Value.ToString();
}
txtMemo.Text = model.scMemo;
txthejoTotal.Text = model.pcShouldReceive.ToString();
List<ProductInSell> piss = (new ProductInSellBLL()).GetListArray(string.Format("sellID={0}", model.sellContractID));
decimal count = 0;
foreach (ProductInSell pis in piss)
{
count += pis.pdtCount;
}
txthejiCount.Text = count.ToString();
hidPdtModels.Value = JavaScriptConvert.SerializeObject(piss);
/*
//合同
ddlContractType.SelectedValue = model.scType.ToString();
txtContractName.Text = model.scTitle;
txtDesc.Text = model.scDesc;
txtItem.Text = model.scItem;
txtContent.Text = model.scContent;
if (model.scBeginTime != null)
{
txtStartDate.Text = model.scBeginTime.Value.ToString();
}
if (model.scEndTime != null)
{
txtEndData.Text = model.scEndTime.Value.ToString();
}
txtSellerSig.Text = model.scSellerSig;
txtPurchaserSig.Text = model.scSellerSig;
upfileHidden.Value = model.scResourceID;
*/
}
}
else
{
//txtContractNO.Text = EnumDefine.NOType.XS.ToString() + LeixunOA.UI.Application.GetNONum;
txtContractNO.Text = (new GetNOClass()).SellNO;
}
}
}
protected void btnSave_Click(object sender, EventArgs e)
{
bll = new SellContractBLL();
model = new SellContract();
model.scNO = txtContractNO.Text;
model.CustomerName = Request.Form[txtToCustomer.UniqueID];
model.scCustomerID = ConvertData.ToInt(hidtoCustomer.Value);
model.UserName = Request.Form[txtToUser.UniqueID];
model.scUserID = ConvertData.ToInt(hidToUser.Value);
model.scMemo = txtMemo.Text;
if (!string.IsNullOrEmpty(Request.Form[txtCreator.UniqueID]))
{
model.scAutoTime = Convert.ToDateTime(Request.Form[txtCreator.UniqueID]);
}
model.pProductName = txtToname.Value;
model.pProducctID = hidToProduct.Value;
if (!string.IsNullOrEmpty(Request.Form[txthejoTotal.UniqueID]))
{
model.pcShouldReceive = Convert.ToDecimal(Request.Form[txthejoTotal.UniqueID]);
}
if (!string.IsNullOrEmpty(hidpPay.Value.Trim()))
{
model.pcReceived = Convert.ToDecimal(hidpPay.Value.Trim());
}
else
{
model.pcReceived = 0;
}
//销售单一旦修改或新添加,审核状态将更改为未审核。
model.pExamine = Convert.ToInt32(LeixunOA.UI.EnumDefine.FinanceRemitStatus.RemitUnFull);
if (!string.IsNullOrEmpty(Request.QueryString["ID"]))
{
//修改
model.sellContractID = ConvertData.ToInt(Request.QueryString["ID"]);
AddProduct(model.sellContractID, true);
bll.Update(model);
Response.Redirect("SellRead.aspx?ID=" + model.sellContractID.ToString());
//MessageBox.ShowAndRedirect(Page, "销售记录修改成功", "SellList.aspx");
}
else
{
//添加
int id = bll.Add(model);
AddProduct(id, false);
if (((Button)sender).ID == "btnnew" || ((Button)sender).ID == "Button2")
{
Response.Redirect("Sellopt.aspx");
}
else
{
Response.Redirect("SellRead.aspx?ID=" + id.ToString());
}
//MessageBox.ShowAndRedirect(Page, "销售记录添加成功", "SellList.aspx");
}
}
private void AddProduct(int sellID, bool flag)
{
ProductInSellBLL pisBll = new ProductInSellBLL();
List<ProductInSell> pisModels = new List<ProductInSell>();
ProductInSell pisModel;
if (flag)
{
pisBll.Delete(sellID, ConvertData.ToInt(EnumDefine.ProductInSellStatus.UnOuted));
}
List<JavaScriptObject> jsObjects = JavaScriptConvert.DeserializeObject<List<JavaScriptObject>>(hidPdtModels.Value);
foreach (JavaScriptObject jsObj in jsObjects)
{
pisModel = pisBll.GetModel(sellID, ConvertData.ToInt(jsObj["pdtID"]));
if (pisModel == null)
{
pisModel = new ProductInSell();
}
pisModel.pdtID = ConvertData.ToInt(jsObj["pdtID"]);
pisModel.pdtPrice = ConvertData.ToDecimal(jsObj["pdtPrice"].ToString());
pisModel.pdtCount = ConvertData.ToDecimal(jsObj["pdtCount"].ToString());
if (pisModel.pdtCount == 0) continue;
if(jsObj["arriveTime"] != null)
{
pisModel.arriveTime = Convert.ToDateTime(jsObj["arriveTime"]);
}
pisModel.sellID = sellID;
if (pisModel.pPartInvCount == pisModel.pdtCount)
{
pisModel.pdtStatus = Convert.ToInt32(EnumDefine.ProductInSellStatus.Outed);
}
else if (pisModel.pPartInvCount > 0)
{
pisModel.pdtStatus = Convert.ToInt32(EnumDefine.ProductInSellStatus.PartOuted);
}
else
{
pisModel.pdtStatus = Convert.ToInt32(EnumDefine.ProductInSellStatus.UnOuted);
}
if (pisModel.sysid == 0)
{
//添加
pisBll.Add(pisModel);
}
else
{
//修改
pisBll.Update(pisModel);
}
}
}
protected void btnSaveAndProduce_Click(object sender, EventArgs e)
{
btnSave_Click(sender, e);
Response.Redirect("../Produce/ProducePlanOpt.aspx");
}
}
转载于:https://www.cnblogs.com/mady55/archive/2009/03/29/1424458.html
Json 实现数据添加/更新 的页面效果相关推荐
- js更新数组对象_7 种Vue 数据已更新而页面没有更新的情况及深化总结(收藏)
作者:前端1943 链接:https://segmentfault.com/a/1190000022772025 如果你发现你自己需要在 Vue 中做一次强制更新,99.9% 的情况,是你在某个地方做 ...
- Vue的数据更新了但页面没有更新及数据频繁更新而页面只更新一次
1.Vue的数据更新了,而页面没有更新 由于Vue的数据双向绑定,我们只需要修改数据,页面就会自动更新.但有时我们修改了数据,页面却也没有更新,这是为什么? 以下用Vue2为例,整理常见的几种问题 1 ...
- 【EXCEL】给数据添加图表(数据条、柱状图、折线图等),快速分析功能图文详解
目录 0.环境 1.背景+简介 2.具体实现 2.1 给数据添加数据条 实现效果: 具体操作: 2.2 给数据添加柱状图图表 实现效果: 具体操作: 2.3 给数据添加迷你图(在表格中的折线图) 实现 ...
- Three.js + React + Echart(折线图 光线流动效果,柱状图数据动态更新动画) + Svga-Web应用之数据大屏(适配1920*1080 2560*1440 3840*2160)
Web应用之数据大屏 一.技术栈 React 17.0.0 搭建脚手架 Eahcrt常规图表 Svga动画 3D模型-Three.Js 大屏适配-目标大屏(4K -3840*2160) 二.React ...
- python 更新数据库历史_python 实现数据库中数据添加、查询与更新的示例代码
一.前言 最近做web网站的测试,遇到很多需要批量造数据的功能:比如某个页面展示数据条数需要达到10000条进行测试,此时手动构造数据肯定是不可能的,此时只能通过python脚本进行自动构造数据:本次 ...
- php 文件 不更新,php页面不刷新更新数据
php页面不刷新更新数据 php页面不刷新更新数据实现起来很简单,我们可以使用前端的ajax技术. ajax作用:ajax技术的目的是让javascript发送http请求,与后台通信,获取数据和信息 ...
- python查询数据库后更新_python 实现数据库中数据添加、查询与更新的示例代码...
一.前言 最近做web网站的测试,遇到很多需要批量造数据的功能:比如某个页面展示数据条数需要达到10000条进行测试,此时手动构造数据肯定是不可能的,此时只能通过python脚本进行自动构造数据:本次 ...
- python代码中怎么增加数据_python 实现数据库中数据添加、查询与更新的示例代码...
一.前言 最近做web网站的测试,遇到很多需要批量造数据的功能:比如某个页面展示数据条数需要达到10000条进行测试,此时手动构造数据肯定是不可能的,此时只能通过python脚本进行自动构造数据:本次 ...
- ajax添加和删除数据,ajax 添加 更新 删除数据库
ajax 添加 更新 删除数据库 内容精选 换一换 云审计服务(Cloud Trace Service,CTS)记录了数据安全中心相关的操作事件,方便用户日后的查询.审计和回溯,具体请参见云审计服务用 ...
最新文章
- 怎样才能学好Vue,听听尤雨溪怎么说?
- 利用apache-commons-fileupload写jsp上传文件
- C语言程序设计输入x求函数y,C语言程序设计实践(OJ)-初识函数
- 视频回顾 | 微信生态数字化运营进阶课大全!
- Tomcat整体介绍
- js使用base64 上传图片解决iOS手机竖屏拍摄图片发生旋转问题
- upupoo设置HTML壁纸,win10 upupoo黑屏怎么解决-解决upupoo设置壁纸黑屏的方法 - 河东软件园...
- 使用Nginx、Keepalived构建负载均衡
- python input nameerror_用python写的,运行时出现NameError: name 'raw_input' is not defined 这是什么原因?求解...
- 直流稳压电源设计(单相)_电力电子课程设计
- 计算机一级网页制作教程视频教程,网页制作入门教程(一)
- mysql 提高update性能_如何调整Mysql中insert、update、delete的顺序来提高效率_提高MySQL效率与性能的技巧...
- 7-9 六度空间 (30 分) C++实现
- addClass(““).delay().removeClass(““);没有效果的解决方式
- fastq文件转化成bam文件
- poi批量导入导出Excel(三、通过模板导出Excel并能实现导入多个sheet表)
- 可以带着游泳的耳机、游泳听歌的运动耳机推荐
- Kotlin-Android世界的一股清流-函数
- RBP as a streaming server(一)
- 【Derivation】正态分布特征函数证明-X~N(a,sigma^2)
热门文章
- self-assessment
- 二, 大数据基础架构Hadoop-HDFS入门和基本操作(基本组成, Shell操作, API操作, 读写流程) hf
- oracle中scott用户的创建
- 如何从ext3升级到ext4?
- 学习TypeScrip1(基础类型)
- 接口性能测试方案 白皮书 V1.0
- selenium的工作原理
- c语言股价连续上涨的天数,为什么通达信没有连涨天数,我的通达信怎么没有连涨天数显示...
- git创建本地仓库远程仓库,并关联。全过程
- Linux中的configure命令作用,linux系统configure命令详解