jquery为表格添加行,jquery读取表格数据

来源:互联网 发布:淘宝店铺宝贝上架教程 编辑:程序博客网 时间:2024/05/16 19:27

 1.=============jquery==================



    ================================================

    以下是部分代码,不可能非常全,大家理解其中的手法就好

            //ddlGoods
        function addLine()
        {
            //================================================================
            var GoodsName = $("#ddlGoods").find("option:selected").text();                                 //先读取要添加的数据
            var GoodsId = $('#ddlGoods').val();
            var accPrice = $('#txtInPrice').val();
            var accCount = $('#txtAcount').val();
            var unit = $('#txtUnit').val();
            var suppliertext = $("#ddlSupplierId").find("option:selected").text();
            var supplierValue = $("#ddlSupplierId").val();
            if (GoodsName == "" && accPrice == "" && accCount == "")                                        //验证非空,保证数据合法性,基于lhgdialog
             {
                 var d = dialog
                ({
                    title: '提示',
                    width: 300,
                    content: '请填写商品信息',
                    cancel: false,
                    okValue: "确定",
                    cancelValue: "取消",
                    ok: function () { }
                });
                d.show();
                return;
            }
            if (supplierValue == "")
            {
                var d = dialog
                ({
                    title: '提示',
                    width: 300,
                    content: '请选择供应商',
                    cancel: false,
                    okValue: "确定",
                    cancelValue: "取消",
                    ok: function () { }
                });
                d.show();
                return false;
            }

            if (GoodsId == "")
            {
                var d = dialog({
                    title: '提示',
                    width: 300,
                    content: '请选择商品',
                    cancel: false,
                    okValue: "确定",
                    cancelValue: "取消",
                    ok: function () { }
                });
                d.show();
                return false;
            }

            if (accPrice == "")
            {
                var d = dialog({
                    title: '提示',
                    width: 300,
                    content: '请填写商品成本价',
                    cancel: false,
                    okValue: "确定",
                    cancelValue: "取消",
                    ok: function () { }
                });
                d.show();
                return;
            }
            if (unit == "") {
                var d = dialog({
                    title: '提示',
                    width: 300,
                    content: '请填写商品单位名称',
                    cancel: false,
                    okValue: "确定",
                    cancelValue: "取消",
                    ok: function () { }
                });
                d.show();
                return;
            }
            if (accCount == "") {
                var d = dialog({
                    title: '提示',
                    width: 300,
                    content: '请填写商品数量',
                    cancel: false,
                    okValue: "确定",
                    cancelValue: "取消",
                    ok: function () { }
                });
                d.show();
                return;
            }
            if (accCount == "0") {
                var d = dialog({
                    title: '提示',
                    width: 300,
                    content: '商品数量不能为空',
                    cancel: false,
                    okValue: "确定",
                    cancelValue: "取消",
                    ok: function () { }
                });
                d.show();
                return;
            }
            var contens = $('#hf').val();
            var yanzheng = $('#hfyanzheng').val();                                                                                                           //用隐藏域来存储验证值,防止重复添加
            var tiaojian = (GoodsName + ",");
            if (yanzheng.indexOf(tiaojian) > -1) {
                $.dialog.alert("请勿重复添加!", null, $("#table"));
                return false;
            }
            var tr = $('<tr></tr>');                                                                                                                                         //构建表格行
            var name = $('<td><span id="' + GoodsId + '" style="margin-left:20px; ">' + GoodsName + '</span ></td>');
            tr.append(name);
            var Inprice = $('<td >' + accPrice + '</td>');
            tr.append(Inprice);
            var InCount = $('<td >' + accCount + '</td>');
            var oDate = new Date();
            var accrow = document.getElementById("table").rows.length + "-" + oDate.getFullYear() + "-" + (oDate.getMonth() + 1) + "-" + oDate.getDate() + "/" + oDate.getHours() + ":" + oDate.getMinutes() + ":" + oDate.getSeconds();
            var InCount = $('<td><input id="GoodsNumber' + accrow + '"onchange="moneyclick();"  onpaste="javascript: return false;" onblur="bCount(this);" onkeyup="chkCount(this);" class="GoodsCount" type="text" value="' + accCount + '"/></td>');
            tr.append(InCount);
            var Unit = $('<td >' + unit + '</td>');
            tr.append(Unit);
            debugger;
            var supplier = $('<td ><span id="' + supplierValue + '">' + suppliertext + '</span></td>');
            tr.append(supplier);
            var deletes = $('<td><a style="cursor: pointer" onclick="dcontent(this,' + "'" + GoodsName + "'," + accPrice + "," + accCount + ",'" + unit + "','" + suppliertext + "')" + '"' + ">删除</a>" + '</td>');                                                                                                                                                       //配置删除按钮参数
            tr.append(deletes);
            var t = (GoodsName + ",");
            val = (GoodsName + "," + accPrice + "," + accCount + "," + unit + "," + suppliertext + "," + GoodsId + "," + supplierValue + "," + 1 + "|");
            $('#hf').val($('#hf').val() + val);                                                                                                                             //实际上把添加行的各个值存储在隐藏域中
            $('#hfyanzheng').val($('#hfyanzheng').val() + t);                                                                                              //添加验证重复的string
            $('#table').append(tr);
            debugger;
            var mon = parseFloat(accCount) * parseFloat(accPrice);                                                                          //对于钱,数量等类型的数据必须 先转换再计算
            if ($('#hfmoney').val() != "") {
                $('#hfmoney').val(parseFloat($('#hfmoney').val()) + parseFloat(mon));
            } else {
                $('#hfmoney').val(parseFloat(0) + parseFloat(mon));
            }
            $("#lblTotal").html("总计:" + $('#hfmoney').val() + "元");

            // alert($('#hfmoney').val());
            // alert($('#hf').val());
            // alert($('#hfyanzheng').val());
        };

        //删除
        function dcontent(obj, GoodsName, accPrice, accCount, unit, suppliertext) {
            alert("ss"); debugger;
            var m = GoodsName + "," + accPrice + "," + accCount + "," + unit + "," + suppliertext + "," + 1 + "|";
            // val = (GoodsName + "," + accPrice + "," + accCount + "," + unit + "," + suppliertext + "," + GoodsId + "," + supplierValue + "," + 1 + "|");,//根据传过来的值构建添加时候构建的string字符串
            var ds = GoodsName + ",";
            var d = dialog({
                title: '提示',
                width: 300,
                content: '确定要删除吗?',
                cancel: true,
                okValue: "确定",
                cancelValue: "取消",
                ok: function () {
                    debugger;
                    $('#hfmoney').val(parseFloat($('#hfmoney').val()) - (parseFloat(accCount) * parseFloat(accPrice)));    //如果有数量,钱等添加,这时候要减去1
                    $("#lblTotal").html("总计:" + $('#hfmoney').val());
                    var s = $('#hf').val();          
                    re = s.replace(m, "");                                                                                                                                                //隐藏域中字符串-1
                    $('#hf').val(re);
                    var a = $('#hfyanzheng').val();
                    var del = a.replace(ds, "");                                                                                                                                      //验证字段-1
                    $('#hfyanzheng').val(del);
                    var t = document.getElementById('table');
                    t.deleteRow(obj.parentNode.parentNode.rowIndex);                                                                                      //根据传过来的参数判断是哪一行,然后删去
                }
            });
            d.show();
        };


                //读取表格的值

        function readTableMsg() {
            debugger;
            var flg = checkBaseMsg();
            if (flg == false) {
                return false;
            }
            $("#hfDetails").val("");
            $("#hfmoney").val("0");
            var trList = $("#table").find("tr")               //行
            for (var i = 1; i < trList.length; i++) {      //请观察获取表格中各个数据的方法,注意他们的不同
                var tdArr = trList.eq(i).find("td");
                var goodsName = tdArr.eq(0).find("span").attr("id");                         //获取span的id,eq(0):第一行,span 用attr获取id

                var InPrice = tdArr.eq(1).text();                                                                   //获取第二格的文本
                var goodsNumber = tdArr.eq(2).find('Input').val();                                  //获取input的文本
                var unit = tdArr.eq(3).text();
                var supplier = tdArr.eq(4).find("span").attr("id");                                     //4代表第五个格子
                var sum = parseFloat(goodsNumber) * parseFloat(InPrice);
                $("#hfmoney").val(parseFloat($("#hfmoney").val()) + parseFloat(sum));

                if ($("#hfDetails").val() == "") {
                    $("#hfDetails").val(goodsName + "," + InPrice + "," + goodsNumber + "," + unit + "," + supplier + "|");
                }
                else {
                    $("#hfDetails").val($("#hfDetails").val() + goodsName + "," + InPrice + "," + goodsNumber + "," + unit + "," + supplier + "|");
                }
            }
              return true;
        }

===============================================

            <asp:HiddenField ID="hfDetails" runat="server" />
            <asp:Repeater ID="rptDetails" runat="server">
                <HeaderTemplate>
                    <table id="table" width="900px" border="0" cellspacing="0" cellpadding="0" class="ltable table">
                        <tr>
                            <th style="text-align: left; padding-left: 30px;">
                                商品名称
                            </th>
                            <th align="left">
                                进价
                            </th>
                            <th align="left">
                                数量
                            </th>
                            <th align="left">
                                单位
                            </th>
                            <th align="left">
                                供应商
                            </th>
                            <th align='left'>
                                操作
                            </th>
                        </tr>
                </HeaderTemplate>
                <ItemTemplate>
                    <tr>
                        <td style="padding-left: 30px;">
                            <span id="<%#Eval("GoodsName")%>">
                                <%#GetGoodsName(Eval("GoodsName").ToString())%></span>
                            <input type="hidden" id="hfOrderCode" value="<%#Eval("OrderCode")%>" />
                        </td>
                        <td>
                            <input id="bjp<%#Container.ItemIndex %>" class="price" type="hidden" value="<%#Eval("GoodsPrice")%>" />
                            <%#Eval("GoodsPrice")%>
                        </td>
                        <td>
                            <input id="accNumber<%#Container.ItemIndex %>" type="text" onblur="bCount(this);"
                                onchange="Price();" onkeyup="chkCount(this);" value="<%#Eval("GoodsNumber")%>"
                                maxlength="3">
                        </td>
                        <td>
                            <%# Eval("GoodsUnit")%>
                        </td>
                        <td>
                            <span id="<%# Eval("SupplierId")%>">
                                <%#GetSupplier(Convert.ToInt32(Eval("SupplierId")))%></span>
                        </td>
                        <td>
                            <a style="cursor: pointer" onclick="dcontent(this,<%#Eval("GoodsName")%>,'<%#Eval("GoodsPrice")%>',<%#Eval("GoodsNumber") %>,'<%#Eval("GoodsUnit")%>',<%#Eval("SupplierId")%>)">
                                删除</a>
                        </td>
                    </tr>
                </ItemTemplate>
                <AlternatingItemTemplate>
                    <tr>
                        <td style="padding-left: 30px;">
                            <span id="<%#Eval("GoodsName")%>">
                                <%#GetGoodsName(Eval("GoodsName").ToString())%></span>
                            <input type="hidden" id="hfOrderCode" value="<%#Eval("OrderCode")%>" />
                        </td>
                        <td>
                            <input id="bjp<%#Container.ItemIndex %>" class="price" type="hidden" value="<%#Eval("GoodsPrice")%>" />
                            <%#Eval("GoodsPrice")%>
                        </td>
                        <td>
                            <input id="accNumber<%#Container.ItemIndex %>" type="text" onblur="bCount(this);"
                                onchange="Price();" onkeyup="chkCount(this);" value="<%#Eval("GoodsNumber")%>"
                                maxlength="3">
                        </td>
                        <td>
                            <%# Eval("GoodsUnit")%>
                        </td>
                        <td>
                            <span id="<%# Eval("SupplierId")%>">
                                <%#GetSupplier(Convert.ToInt32(Eval("SupplierId")))%></span>
                        </td>
                        <td>
                            <a style="cursor: pointer" onclick="dcontent(this,<%#Eval("GoodsName")%>,'<%#Eval("GoodsPrice")%>',<%#Eval("GoodsNumber") %>,'<%#Eval("GoodsUnit")%>',<%#Eval("SupplierId")%>)">
                                删除</a>
                        </td>
                    </tr>
                </AlternatingItemTemplate>
                <FooterTemplate>
                    </table>
                </FooterTemplate>
            </asp:Repeater>
            <div style="float: right; padding-right: 50px;">
                <asp:Label ID="lblTotal" runat="server" Text="总计:"></asp:Label></div>
        </div>
    </div>
    <asp:HiddenField ID="phf" runat="server" />
    <div class="page-footer">
        <div class="btn-list">
            <asp:Button ID="btnSubmit" runat="server" Text="保存" CssClass="btn" OnClientClick="return readTableMsg()"
                OnClick="btnSubmit_Click" /></div>

===========================================

  //大保存
        protected void btnSubmit_Click(object sender, EventArgs e)
        {

            if (string.IsNullOrEmpty(ddlBuyer.SelectedValue))
            {
                JscriptMsg("请选择采购员", "", "Error");
                return;
            }
            if (string.IsNullOrEmpty(ddlProPoserId.SelectedValue))
            {
                JscriptMsg("请选择提交人", "", "Error");
                return;
            }

            List<CommandInfo> listComm = new List<CommandInfo>();
            List<CommandInfo> listComm2 = new List<CommandInfo>();

            //添加单信息
            Model.mn_ShppingList ev = new Model.mn_ShppingList();
            ev.OrderCode = ordercode;
            ev.BuyerId = Convert.ToInt32(ddlBuyer.SelectedValue);
            ev.OrderDate = Convert.ToDateTime(dpkOrderDate.Text.Trim());
            ev.DeliveryDate = Convert.ToDateTime(dpkDeliveryDate.Text.Trim());
            ev.ProPoserId = Convert.ToInt32(ddlProPoserId.SelectedValue);
            ev.ApplicationDate = Convert.ToDateTime(dpkApplicationDat.Text.Trim());
            ev.AddTime = DateTime.Now;
            ev.ShppingListState = 0;
            // ev.ShppingListState = Convert.ToInt32(ddlListState.SelectedValue);
            if (!string.IsNullOrEmpty(txtIsPay.Text.Trim()))
            {
                ev.IsPay = Convert.ToDecimal(txtIsPay.Text.Trim());//已支付金额
            }
            else
            {
                ev.IsPay = 0;
            }
            if (!string.IsNullOrEmpty(ddlIsPay.SelectedValue))
            {
                ev.PayState = Convert.ToInt32(ddlIsPay.SelectedValue);
            }
            else
                ev.PayState = 0;

            ev.PayAmout = Convert.ToDecimal(hfmoney.Value);//总金额
==========================请忽略上面一小段===============================
            //详细
            List<Model.mn_ShoppingDetails> modDetailsList = new List<Model.mn_ShoppingDetails>();
            string count = hfDetails.Value;         //读取隐藏域,并分割成数组
            string[] jia = hfDetails.Value.Split('|');                    //以‘|’为分割,做成数组
            if (count != "")
            {
                if (ShopListBll.Delete(this.ordercode))
                {
                    string[] j = count.Split('|');
                    for (int i = 0; i < j.Length - 1; i++)
                    {
                        string[] js = j[i].Split(',');                            //再次分割,已‘,’作为分隔符,做成数组
                        #region 成本价
                      //  for (int a = 0; a < js.Length-1; a++)
                       // {
                            Model.mn_ShoppingDetails modDetail = new Model.mn_ShoppingDetails();
                            modDetail.GoodsName = js[0].Trim();
                            //modDetail.GoodsStandard = js[6].ToString();
                            modDetail.GoodsPrice = Convert.ToDecimal(js[1]);
                            modDetail.GoodsNumber = Convert.ToInt32(js[2].Trim());     //注意数据类型的转换
                            modDetail.GoodsUnit = js[3].Trim();
                            modDetail.SupplierId = Convert.ToInt32(js[4].Trim());
                            //编号
                            modDetail.OrderCode = ev.OrderCode;
                            modDetailsList.Add(modDetail);
                      //  }
                        #endregion
                    }
                }
            }

            //保存方法,没啥好说的

            if (ShopListBll.SaveShoppintOrder(ev, modDetailsList))
            {
                JscriptMsg("保存成功!!!", "ShoppingList.aspx", "Success");
            }
            else
            {
                JscriptMsg("保存失败!!!", "", "Error");
            }

        }


0 0
原创粉丝点击