在IE中有一个table,用JavaScript怎么操作他,例如:增行,删除等操作,
还有一个问题,我还想控制table的cell(单元格)中能否输入字符。大家有没有这样的例子.在问这样一个问题。
在.NET中有没有这样的一中技术,见笑了 :)例如:一个输入页面,我定义了一个类似JavaBean的实体类,和页面的每个空件的值相对应..然后我在aspx.cs文件里,使用这个Bean 时,他已经具备了页面上的所有值....???(不能手动获取例如:bean.name = name.Text)...(如果没有这样的技术,该怎么实现,能否给个思路...)
仅仅是个提问,各位帮忙....拜谢了..

解决方案 »

  1.   

    <table CONTENTEDITABLE="true" border="1"  style="width:90%;border:1px solid #5f8ac5" align="center" cellpadding="2" cellspacing="2">
    <tr>
    <td>d
    </td><td>d
    </td>
    </tr>
    </table>
      

  2.   

    javascript我不大熟,用C#的话在cs中写Respone.write("<table><tr></tr></table>");
      

  3.   

    <div  CONTENTEDITABLE="true"><table border="1"  style="width:90%;border:1px solid #5f8ac5" align="center" cellpadding="2" cellspacing="2">
    <tr>
    <td>可编辑
    </td><td>
    </td></tr>
    </table>
    </div>
      

  4.   

    <div CONTENTEDITABLE="true">
    <table border="0" id="EdustarLayout" style="width:90%;border:1px solid #5f8ac5" align="center" cellpadding="2" cellspacing="2">
    <tr>
    <td align="center" style="border:1px solid #5f8ac5">
    <div CONTENTEDITABLE="false" style="width:80%;padding:2px" class="DivContainer">
    <div class="LayoutWebPart">
    <nobr>通长广告条<input type="checkbox" name="ItemIncluded" onclick="checkIncludedDiv(this)" value="http://localhost/SqlPUB2004/Portal/FEF6D5C78C.htm" checked="" />
    </nobr>
    </div>
    </div>
    </td>
    </tr>
    </table>
    </div><hr style="color: #5f8ac5;width:98%;height:2px" align=center>
    <input type=button value="插入列(左)" onclick="TableColInsertLeft()" UNSELECTABLE="on" class="CustButton" style="width:80px">
    <input type=button value="插入列(右)" onclick="TableColInsertRight()" UNSELECTABLE="on" class="CustButton" style="width:80px">
    <input type=button value="删 除 列" onclick="TableColDelete()" UNSELECTABLE="on" class="CustButton" style="width:80px">
    </div>
    <script>
    var borderShown = "no";
    // 表格相关全局变量
    var selectedTD
    var selectedTR
    var selectedTBODY
    var selectedTable// 插入行(在上方)
    function TableRowInsertAbove() { if (isCursorInTableCell()){
    var numCols = 0 allCells = selectedTR.cells
    for (var i=0;i<allCells.length;i++) {
      numCols = numCols + allCells[i].getAttribute('colSpan')
    } var newTR = selectedTable.insertRow(selectedTR.rowIndex) for (i = 0; i < numCols; i++) {
      newTD = newTR.insertCell()
    newTD.innerHTML = "&nbsp;" if (borderShown == "yes") {
    newTD.runtimeStyle.border = "1px dotted #BFBFBF"
    }
    }
    }
    }// 插入行(在下方)
    function TableRowInsertBelow() { if (isCursorInTableCell()){ var numCols = 0 allCells = selectedTR.cells
    for (var i=0;i<allCells.length;i++) {
      numCols = numCols + allCells[i].getAttribute('colSpan')
    } var newTR = selectedTable.insertRow(selectedTR.rowIndex+1) for (i = 0; i < numCols; i++) {
      newTD = newTR.insertCell()
    newTD.innerHTML = "&nbsp;" if (borderShown == "yes") {
    newTD.runtimeStyle.border = "1px dotted #BFBFBF"
    }
    }
    }
    }// 合并行(向下方)
    function TableRowMerge() {
    if (isCursorInTableCell()) { var rowSpanTD = selectedTD.getAttribute('rowSpan')
    allRows = selectedTable.rows
    if (selectedTR.rowIndex +1 != allRows.length) { var allCellsInNextRow = allRows[selectedTR.rowIndex+selectedTD.rowSpan].cells
    var addRowSpan = allCellsInNextRow[selectedTD.cellIndex].getAttribute('rowSpan')
    var moveTo = selectedTD.rowSpan if (!addRowSpan) addRowSpan = 1; selectedTD.rowSpan = selectedTD.rowSpan + addRowSpan
    allRows[selectedTR.rowIndex + moveTo].deleteCell(selectedTD.cellIndex)
    }
    }}// 拆分行
    function TableRowSplit(nRows){
    if (!isCursorInTableCell()) return;
    if (nRows<2) return; var addRows = nRows - 1;
    var addRowsNoSpan = addRows; var nsLeftColSpan = 0;
    for (var i=0; i<selectedTD.cellIndex; i++){
    nsLeftColSpan += selectedTR.cells[i].colSpan;
    } var allRows = selectedTable.rows; // rowspan>1时
    while (selectedTD.rowSpan > 1 && addRowsNoSpan > 0){
    var nextRow = allRows[selectedTR.rowIndex+selectedTD.rowSpan-1];
    selectedTD.rowSpan -= 1; var ncLeftColSpan = 0;
    var position = -1;
    for (var n=0; n<nextRow.cells.length; n++){
    ncLeftColSpan += nextRow.cells[n].getAttribute('colSpan');
    if (ncLeftColSpan>nsLeftColSpan){
    position = n;
    break;
    }
    } var newTD=nextRow.insertCell(position);
    newTD.innerHTML = "&nbsp;"; if (borderShown == "yes") {
    newTD.runtimeStyle.border = "1px dotted #BFBFBF";
    } addRowsNoSpan -= 1;
    } // rowspan=1时
    for (var n=0; n<addRowsNoSpan; n++){
    var numCols = 0 allCells = selectedTR.cells
    for (var i=0;i<allCells.length;i++) {
    numCols = numCols + allCells[i].getAttribute('colSpan')
    } var newTR = selectedTable.insertRow(selectedTR.rowIndex+1) // 上方行的rowspan达到这行
    for (var j=0; j<selectedTR.rowIndex; j++){
    for (var k=0; k<allRows[j].cells.length; k++){
    if ((allRows[j].cells[k].rowSpan>1)&&(allRows[j].cells[k].rowSpan>=selectedTR.rowIndex-allRows[j].rowIndex+1)){
    allRows[j].cells[k].rowSpan += 1;
    }
    }
    }
    // 当前行
    for (i = 0; i < allCells.length; i++) {
    if (i!=selectedTD.cellIndex){
    selectedTR.cells[i].rowSpan += 1;
    }else{
    newTD = newTR.insertCell();
    newTD.colSpan = selectedTD.colSpan;
    newTD.innerHTML = "&nbsp;"; if (borderShown == "yes") {
    newTD.runtimeStyle.border = "1px dotted #BFBFBF";
    }
    }
    }
    }}
      

  5.   

    // 删除行
    function TableRowDelete() {
    if (isCursorInTableCell()) {
    selectedTable.deleteRow(selectedTR.rowIndex)
    }
    }// 插入列(在左侧)
    function TableColInsertLeft() {
        if (isCursorInTableCell()) {
    moveFromEnd = (selectedTR.cells.length-1) - (selectedTD.cellIndex)
    allRows = selectedTable.rows
    for (i=0;i<allRows.length;i++) {
    rowCount = allRows[i].cells.length - 1
    position = rowCount - moveFromEnd
    if (position < 0) {
    position = 0
    }
    newCell = allRows[i].insertCell(position)
    newCell.innerHTML = "&nbsp;"
    newCell.style.textAlign = "center"
    newCell.style.borderWidth = "1px"
    newCell.style.borderColor = "#5f8ac5"
    newCell.style.borderStyle = "solid" if (borderShown == "yes") {
    newCell.runtimeStyle.border = "1px dotted #BFBFBF"
    }
    }
        }
    }// 插入列(在右侧)
    function TableColInsertRight() {
        if (isCursorInTableCell()) {
    moveFromEnd = (selectedTR.cells.length-1) - (selectedTD.cellIndex)
    allRows = selectedTable.rows
    for (i=0;i<allRows.length;i++) {
    rowCount = allRows[i].cells.length - 1
    position = rowCount - moveFromEnd
    if (position < 0) {
    position = 0
    }
    newCell = allRows[i].insertCell(position+1)
    newCell.innerHTML = "&nbsp;"
    newCell.style.textAlign = "center"
    newCell.style.borderWidth = "1px"
    newCell.style.borderColor = "#5f8ac5"
    newCell.style.borderStyle = "solid" if (borderShown == "yes") {
    newCell.runtimeStyle.border = "1px dotted #BFBFBF"
    }
    }
        }
    }// 合并列
    function TableColMerge() {
    if (isCursorInTableCell()) { var colSpanTD = selectedTD.getAttribute('colSpan')
    allCells = selectedTR.cells if (selectedTD.cellIndex + 1 != selectedTR.cells.length) {
    var addColspan = allCells[selectedTD.cellIndex+1].getAttribute('colSpan')
    selectedTD.colSpan = colSpanTD + addColspan
    selectedTR.deleteCell(selectedTD.cellIndex+1)
    }
    }}// 删除列
    function TableColDelete() {
        if (isCursorInTableCell()) {
    moveFromEnd = (selectedTR.cells.length-1) - (selectedTD.cellIndex)
    allRows = selectedTable.rows
    for (var i=0;i<allRows.length;i++) {
    endOfRow = allRows[i].cells.length - 1
    position = endOfRow - moveFromEnd
    if (position < 0) {
    position = 0
    }
    allCellsInRow = allRows[i].cells if (allCellsInRow[position].colSpan > 1) {
    allCellsInRow[position].colSpan = allCellsInRow[position].colSpan - 1
    } else {
    allRows[i].deleteCell(position)
    } } }}// 拆分列
    function TableColSplit(nCols){
    if (!isCursorInTableCell()) return;
    if (nCols<2) return; var addCols = nCols - 1;
    var addColsNoSpan = addCols;
    var newCell; var nsLeftColSpan = 0;
    var nsLeftRowSpanMoreOne = 0;
    for (var i=0; i<selectedTD.cellIndex; i++){
    nsLeftColSpan += selectedTR.cells[i].colSpan;
    if (selectedTR.cells[i].rowSpan > 1){
    nsLeftRowSpanMoreOne += 1;
    }
    } var allRows = selectedTable.rows
    // colSpan>1时
    while (selectedTD.colSpan > 1 && addColsNoSpan > 0) {
    newCell = selectedTR.insertCell(selectedTD.cellIndex+1);
    newCell.innerHTML = "&nbsp;"
    if (borderShown == "yes") {
    newCell.runtimeStyle.border = "1px dotted #BFBFBF"
    }
    selectedTD.colSpan -= 1;
    addColsNoSpan -= 1;
    }
    // colSpan=1时
    for (i=0;i<allRows.length;i++) {
    var ncLeftColSpan = 0;
    var position = -1;
    for (var n=0; n<allRows[i].cells.length; n++){
    ncLeftColSpan += allRows[i].cells[n].getAttribute('colSpan');
    if (ncLeftColSpan+nsLeftRowSpanMoreOne>nsLeftColSpan){
    position = n;
    break;
    }
    } if (selectedTR.rowIndex!=i){
    if (position!=-1){
    allRows[i].cells[position+nsLeftRowSpanMoreOne].colSpan += addColsNoSpan;
    }
    }else{
    for (var n=0; n<addColsNoSpan; n++){
    newCell = allRows[i].insertCell(selectedTD.cellIndex+1)
    newCell.innerHTML = "&nbsp;"
    newCell.rowSpan = selectedTD.rowSpan; if (borderShown == "yes") {
    newCell.runtimeStyle.border = "1px dotted #BFBFBF"
    }
    }
    }
    }
    }// 是否选中表格
    function isTableSelected() {
    if (document.selection.type == "Control") {
    var oControlRange = document.selection.createRange();
    if (oControlRange(0).tagName.toUpperCase() == "TABLE") {
    selectedTable = document.selection.createRange()(0);
    return true;
    }
    }
    }// 光标是否在表格中
    function isCursorInTableCell() {
    if (document.selection.type != "Control") {
    var elem = document.selection.createRange().parentElement()
    while (elem.tagName.toUpperCase() != "TD" && elem.tagName.toUpperCase() != "TH"){
    elem = elem.parentElement
    if (elem == null)
                    break
    }
    if (elem) {
    selectedTD = elem
    selectedTR = selectedTD.parentElement
    selectedTBODY =  selectedTR.parentElement
    selectedTable = selectedTBODY.parentElement
    return true
    }
    }
    }
    // 插入表格
    function TableInsert(){
    if (!isTableSelected()){
    var sTable = '<table border="0" id="EdustarLayout" style="width:90%;border:1px solid #5f8ac5" align="center" cellpadding="2" cellspacing="2">';
    sTable = sTable + "<tr>";
    sTable = sTable + '<td  align="center" style="border:1px solid #5f8ac5">&nbsp;</td>';
    sTable = sTable + "</tr>";
    sTable = sTable + "</table>";
    window.insertHTML(sTable); }
    }
    </script>
      

  6.   

    http://ewebeditor.webasp.net/eWebEditor(在线文本编辑器)源代码里有表格操作的函数