首页 > 技术文章 > js收集表格的内容(表格中每一行带有select下拉框)

elevenlang 2013-12-19 16:19 原文

/*
* 功能:    收集id=gridBar的数据
* 参数:    返回值为XML字符串
* 返回值:  appForm.userxml = "<myxml>我定义的xml</myxml>"
* 创建人:  彭松
* 创建时间:2013-12-11
*/
function getGridXml() {
   // debugger;
    var sTable = document.getElementById("gridBar");
    var sUserXml = "<myxml><myGUID>";
    var userGUID = document.getElementById("txtUserGUID").value;
    sUserXml += userGUID + "</myGUID>";
    for (var i = 1; i < sTable.rows.length; i++) {
        sUserXml += "<mysub>";
        sUserXml += "<SubGUID>" +TestScore.GetSubGUID(sTable.rows[i].getAttribute("subname")).SubGUID + "</SubGUID>";
        sUserXml += "<SubName>" + sTable.rows[i].getAttribute("subname") + "</SubName>";
        sUserXml += "<PassedScore>" + sTable.rows[i].getAttribute("passedscore") + "</PassedScore>";
        sUserXml += "<Score>" + sTable.rows[i].cells[3].childNodes[0].value + "</Score>";
        sUserXml += "</mysub>";
    }
    sUserXml += "</myxml>";
    return sUserXml;
}

 注:对于表格中有select下来菜单的,可以将值填充在每一行的属性上面,然后就可以取属性值了

/*
* 功能:    当点击添加按钮时,对id=gridBar表格插入一行
* 参数:    
* 返回值:  
* 创建人:  彭松
* 创建时间:2013-12-11
*/
function addRowData() {
    var tabGriBar = document.getElementById("gridBar");
    var insertRow = tabGriBar.insertRow();
    
    //设置插入行的样式和添加行GUID
    with (insertRow) {
        var obj = TestScore.AddClass();
        var strGUID = "";
        strGUID = GetDataFromXMLHTTP("/Slxt/PUB/GetDataFromXMLHTTP.aspx", "CREATEGUID", "", "");
        setAttribute("oid", strGUID);
        setAttribute("height", "24");
        setAttribute("subname", obj[0].SubName);
        setAttribute("passedscore", obj[0].PassedScore);
        setAttribute("score", "");
    }  
  
    //插入行数据
    insertRowData(insertRow);
    insertRow.click();
    addClassOption();

}

 

 
 /*
 * 功能:    对行的select添加option班级
 * 参数:    
 * 返回值:  
 * 创建人:  彭松
 * 创建时间:2013-12-11
 */
function addClassOption() {
    var obj = TestScore.AddClass();
    $("#gridBar tr").each(function(i) {
        if (i > 0) {
            for (var j = 0; j < obj.length; j++) {
                $(this).find(".selectClass").append("<option value='" + obj[j].PassedScore + "'>" + obj[j].SubName + " </option>");
            }
        }
    });
}

 在select下拉菜单变化选择的时候,需要更新选择行的属性值

/*
* 功能:    select的onchange事件
* 参数:    select选择的选项对象
* 返回值:  
* 创建人:  彭松
* 创建时间:2013-12-11
*/
function showOptionValue(selectOption) {
   // debugger;
    var s = selectOption.options[selectOption.options.selectedIndex];
    //后台校验课程名是否重复
    var userGUID = document.getElementById("txtUserGUID").value;
    $("#gridBar tr.gridSelectOn").each(function() {
        $(this).find("input:eq(0)")[0].value = s.value;
        $(this).attr("subname", s.text);
        $(this).attr("passedscore", s.value);
    });
    if (TestScore.CheckSubName(s.text, userGUID)==false ) {
        alert("课程名重复,请重新选择");
     } 

}

 

推荐阅读