在IE中有一个table,用JavaScript怎么操作他,例如:增行,删除等操作,
还有一个问题,我还想控制table的cell(单元格)中能否输入字符。大家有没有这样的例子.在问这样一个问题。
在.NET中有没有这样的一中技术,见笑了 :)例如:一个输入页面,我定义了一个类似JavaBean的实体类,和页面的每个空件的值相对应..然后我在aspx.cs文件里,使用这个Bean 时,他已经具备了页面上的所有值....???(不能手动获取例如:bean.name = name.Text)...(如果没有这样的技术,该怎么实现,能否给个思路...)
仅仅是个提问,各位帮忙....拜谢了..
还有一个问题,我还想控制table的cell(单元格)中能否输入字符。大家有没有这样的例子.在问这样一个问题。
在.NET中有没有这样的一中技术,见笑了 :)例如:一个输入页面,我定义了一个类似JavaBean的实体类,和页面的每个空件的值相对应..然后我在aspx.cs文件里,使用这个Bean 时,他已经具备了页面上的所有值....???(不能手动获取例如:bean.name = name.Text)...(如果没有这样的技术,该怎么实现,能否给个思路...)
仅仅是个提问,各位帮忙....拜谢了..
<tr>
<td>d
</td><td>d
</td>
</tr>
</table>
<tr>
<td>可编辑
</td><td>
</td></tr>
</table>
</div>
<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 = " " 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 = " " 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 = " "; 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 = " "; if (borderShown == "yes") {
newTD.runtimeStyle.border = "1px dotted #BFBFBF";
}
}
}
}}
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 = " "
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 = " "
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 = " "
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 = " "
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"> </td>';
sTable = sTable + "</tr>";
sTable = sTable + "</table>";
window.insertHTML(sTable); }
}
</script>