学习Js小笔记之二

1.定义一个实体变量
  var ticket = {TicketNo:$("#TicketNo").val(),
            SeatNo: $("#SeatNo").val()};
2.读取页面上已经选中的数据项(数据绑定的checkbox上)
var getData = function () {
            var rows = document.getElementById("RepeaterName").rows;
            var row, i;
            var datas = [];
            for (i = 1; row = rows[i]; i++) {
                var chk = row.cells[0].getElementsByTagName("INPUT")[0];
                var TicketNo = row.cells[0].getElementsByTagName("INPUT")[1];
                var SeatNo = row.cells[0].getElementsByTagName("INPUT")[2];
                if (chk.checked) {
                    var data = {
                        TicketNo: TicketNo.value,
                        TicketNo: SeatNo.value,
                    };
                    datas.push(data);
                }
            }
            return datas;
        }
3..将页面选中的数据实体转化成JSON格式,再将该字符串存到页面的隐藏域中,后台读到此字符串再返序列化一下即可
Js 代码:
   var datas = getData(); var str="[";
   for (var data in datas) {str+="{TicketNo:"+data.TicketNo+",SeatNo:"+data.SeatNo+"}"}
   str += "]";
   $("#HiddenFieldName").val(str);
.cs代码:
    var jsonStr = this.HiddenFieldName.Value;
       var jsSerial = new JavaScriptSerializer();
       var tickets = jsSerial.Deserialize<List<Entity>>(jsonStr);
4.判断新写入的这一行数据跟已有的数据是否存在冲突
     //保存當前行數據
    function Save(obj) {            
   var tickets = $("#RepeaterName tr").not($(obj).parents("tr")).map(function () { 
                var tno= $(this).find("#TicketNo");
                var sno=$(this).find("#SeatNo");
                if (tno.length>0&&tno.val()!=""&&sno.length>0&&sno.val()!="") {
                    return $.trim(tno.val()) +"-"+ $.trim(sno.val())+"~";
                    }
            }).get().join(",");//将本行数据以外的数据主键按照一定格式串成字符串,然后比较本行数据是否在这个字符串中
 
            if (tickets.indexOf($.trim(ticket.TicketNo) + "-" + $.trim(ticket.SeatNo) + "~") >=0) alert("票號+座號 不可重複!")
          else ....//保存数据的代码
        }
posted @ 2012-03-21 17:07  dahouhou  Views(169)  Comments(0Edit  收藏  举报