Closed Bug 30418 Opened 25 years ago Closed 24 years ago

Creating a table header/footer prevents display of first tbody row

Categories

(Core :: DOM: Core & HTML, defect, P2)

defect

Tracking

()

VERIFIED FIXED

People

(Reporter: taras.tielkes, Assigned: karnaze)

References

Details

(Keywords: testcase, Whiteboard: [nsbeta3+])

Attachments

(1 file)

(This one is probably related to 26178, but the code is Dom1 javascript only)
Building a table through DOM1:
-------------------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN style 
http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<script>
window.onload = createTable;

function createTable()
{
	var oTable = document.createElement("table");
	document.body.appendChild(oTable);
	oTable.appendChild(document.createElement("tbody"));
	
	/* // THead creation block
	var oTHead = oTable.createTHead();
	var oRow = oTHead.insertRow(0); 
	for(col=0;col<8;col++)
	{
		var oCell = oRow.insertCell(col);
		var cellValue = document.createTextNode("h" + col);
		oCell.appendChild(cellValue);
	}
	*/
	
	/* // TFoot creation block
	var oTFoot = oTable.createTFoot();
	var oRow = oTFoot.insertRow(0); // create table footer row
	for(col=0;col<8;col++)
	{
		var oCell = oRow.insertCell(col);
		var cellValue = document.createTextNode("f" + col);
		oCell.appendChild(cellValue);
	} */
	
	for(row=0;row<1;row++) // ask for just 1 row
	{
		var oRow = oTable.tBodies[0].insertRow(row);
		for(col=0;col<8;col++)
		{
			var oCell = oRow.insertCell(col);			
			var newValue2 = document.createTextNode("r" + row + "c" 
+ col);
			oCell.appendChild(newValue2);
		}
	}	
		
	oTable.border = 4;
		
	var str = "";
	str += ".rows.length: " + oTable.rows.length + "\n";
	//str += ".tHead.rows.length: " + oTable.tHead.rows.length + "\n";
	//str += ".tFoot.rows.length: " + oTable.tFoot.rows.length + "\n";
	str += ".tBodies.length: " + oTable.tBodies.length + "\n";
	str += ".tBodies[0].rows.length: " + oTable.tBodies[0].rows.length 
+ "\n";
	
	//alert(str);
}
</script>
</head>
<body>
</body>
</html>
-------------------------------------------------------------------
Above script will make one table row.
Uncommend the tfoot and/or thead creation block and the added tbody row will 
disappear. Adding 2 tbody rows will show only 1, et cetera.
The table row *is* created, as the alert() at the end of the script will show. 
Adding a thead, tfoot, and 1 tbody row will give a result of "3" when looking 
in "oTable.tBodies[0].rows.length".

Moving the "document.body.appendChild(oTable);" statement to the end of the 
script block (e.g. to the place of the commented-out "alert") will fix the 
display problems. Hope this helps track the problem a bit.

QA Contact: gerardok → janc
t.r.tiekes@zap.a2000.nl - is this still not working in recent Mozilla builds?

Gerv
Doesn't work in Netscape 6 beta 1.(WinNT)
Doesn't work in today's build. (WinNT)

All other bugs that are displayed by the included sample still show (first 
column is drawn last et cetera)
Status: UNCONFIRMED → ASSIGNED
Ever confirmed: true
Since Vidur is on sabbatical I'm taking this one...
Assignee: vidur → jst
Status: ASSIGNED → NEW
Attached file test case
Accepting bug, aiming for M17.
Status: NEW → ASSIGNED
OS: Windows NT → All
Hardware: PC → All
Target Milestone: --- → M17
spam: adding keyword.

Gerv
Keywords: testcase
Johnny Stenback, there is a way to modify the (JavaScript) code that will show 
the header/footer.

Basically, if I stay away from manualy creating a TBODY, but insert rows 
directly into the table, things work.
The other requirement for this to work is that the table rows insertion takes 
place *before* the THEAD/TFOOT insertion. The testcase I'm talking about is 
attached to this bug:

http://bugzilla.mozilla.org/show_bug.cgi?id=30420

Perhaps comparing the code paths and tracing the two different testcases can 
help you find the bug. If you need more testcases or other assistance, just 
yell.
Nominating for nsbeta3, I think I even had a partial fix for this waaaay back,
can't seem to find it right now tho.
Keywords: nsbeta3
Priority: P3 → P2
Target Milestone: M17 → M18
correctness of DOM1 implementation. Important to be able to generate tables
programmatically through DOM1.
Keywords: correctness
This bug has been marked "future" because the original netscape engineer working 
on this is over-burdened. If you feel this is an error, that you or another
known resource will be working on this bug,or if it blocks your work in some way 
-- please attach your concern to the bug for reconsideration, but do not clear 
the nsbeta3- nomination.
Keywords: relnote3
Whiteboard: [nsbeta3-]
Target Milestone: M18 → Future
Inserting the tbody *before* the thead insertion works.  However, the width of
the table cells does not reflow which is should if a cell in the head row is
wider than any cells in that row.  I know this can be set with css, but it would
be nice if it is not going to be fixed to at least have the table reflow after
adding a thead last to reflect wider headings if necessary.
Reassigning and removing Future milestone and nsbeta3-, karnaze, please look
into the reflow problem and target this bug appropriately. Feel free to give
this back to me once the reflow problem is dealt with. Thanks!
Assignee: jst → karnaze
Status: ASSIGNED → NEW
Whiteboard: [nsbeta3-]
Target Milestone: Future → ---
Approving for beta3
Whiteboard: [nsbeta3+]
Blocks: 47252
Target Milestone: --- → M18
PDT reviewing P2 bugs, but we can't make a judgement on the severity/criticality
of this bug. Chris or Vidur, could you make a comment?
Fixed.
Status: NEW → RESOLVED
Closed: 24 years ago
Resolution: --- → FIXED
Verified:
2000-09-28-09-MN6 : Windows
2000-09-26-04-M18 : Mac
2000-09-28-10-MN6 : Linux
 
Status: RESOLVED → VERIFIED
Component: DOM → DOM: Core & HTML
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: