您的位置:首页 > Web前端 > JQuery

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

2016-01-12 15:11 573 查看
 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 + "," +
ea20
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");

            }

        }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  jquery 数据