Subject: apply css class to dynamically generated table row
Posted By: nikeshkm Post Date: 9/28/2006 2:45:58 AM
I have a javascript function which will add rows dynamically.
But the problem is how should i apply css class to those dynamically generated rows. The code is as follows:

<html>
<head>
<script language="javascript"  src="validateSecure.js"></script>
<script>
    function saveEntry()
    {
        alert('I am saving your detials');
    }
    function addRow()
    {
      var tbl = document.getElementById('dateTable');
      var lastRow = tbl.rows.length;
      // if there's no header row in the table, then iteration = lastRow + 1
      var iteration = lastRow;
      var row = tbl.insertRow(lastRow);
              
      // First cell
      var cellFirst = row.insertCell(0);
      var selYear = document.createElement('select');
      selYear.name='strExtendedYear';
      selYear.options[0]=new Option('2006','2006');
      selYear.options[1]=new Option('2007','2007');
      selYear.options[2]=new Option('2008','2008');
      cellFirst.appendChild(selYear);
              
      // Second cell
      var cellSecond = row.insertCell(1);
      var selMonth = document.createElement('select');
      selMonth.name = 'strExtendedMonth';
      selMonth.options[0]=new Option('01','01');
      selMonth.options[1]=new Option('02','02');
      selMonth.options[2]=new Option('03','03');
      selMonth.options[3]=new Option('04','04');
      selMonth.options[4]=new Option('05','05');
      selMonth.options[5]=new Option('06','06');
      selMonth.options[6]=new Option('07','07');
      selMonth.options[7]=new Option('08','08');
      selMonth.options=new Option('09','09');
      selMonth.options[9]=new Option('10','10');
      selMonth.options[10]=new Option('11','11');
      selMonth.options[11]=new Option('12','12');
      cellSecond.appendChild(selMonth);
      
      //Third cell
      var cellThird=row.insertCell(2);
      var textDay = document.createElement('input');
      textDay.type = 'text';
      textDay.name = 'strExtendedEndDay';
      textDay.size = 2;
      cellThird.appendChild(textDay);
      var textMonth = document.createElement('input');
      textMonth.type = 'text';
      textMonth.name = 'strExtendedEndMonth';
      textMonth.size = 2;
      cellThird.appendChild(textMonth);
      var textYear = document.createElement('input');
      textYear.type = 'text';
      textYear.name = 'strExtendedEndYear';
      textYear.size = 4;
      cellThird.appendChild(textYear);
    
      // Fourth cell
      var cellFourth = row.insertCell(3);
      var toDelete = document.createElement('input');
      toDelete.type='checkbox';
      toDelete.name = 'strDelete';
      cellFourth.appendChild(toDelete);
    }
</script>
</head>
<BODY>
<link rel="stylesheet" href="styleAdmin.css">
<form>

<table width="600" border="0" cellpadding="3">
    <tr>
      <td class="dealername" colspan="4">Administrator : Bristlecone</td>
    </tr>
    <tr>
      <td class="TDHeader" colspan="4">Retail Closing: User Management</td>
    </tr>
    <tr>
      <td class="TDcolorgreyBold" colspan="2">Retail Start Day:
      </td>
      <td class="TDcolorgreyBold" colspan="2">
      <input type="text" name = "strStartDay" maxlength="2" value="25" size="2"/> </td>
    </tr>
    <tr>
      <td class="TDcolorgreyBold" colspan="2">Retail End Day:
      </td>
      <td class="TDcolorgreyBold" colspan="2">
      <input type="text" name = "strEndDay" maxlength="2" value="27" size="2"/>  </td>
    </tr>
</table>

<table width="600" border="0" cellpadding="3" id="dateTable">
    <tr>
        <td class="TDHeader" colspan="4">Extended End Date</td>
    </tr>
    <tr>
        <td class="TDcolorgreyBold" colspan="1">Year</td>
        <td class="TDcolorgreyBold" colspan="1">Month</td>
        <td class="TDcolorgreyBold" colspan="1">Extended End Date</td>
        <td class="TDcolorgreyBold" colspan="1">Remove / Delete</td>
    </tr>
       <tr>
          <td class="TDcolorgreyBold" colspan="1">
              <select name ="strExtendedYear">
                  <option value ="2006"/>2006
                <option value ="2007"/>2007
                <option value ="2008"/>2008                                    
              </select>    
          </td>          
          <td class="TDcolorgreyBold" colspan="1">
              <select name ="strExtendedMonth">
                  <option value ="01">01
                <option value ="02">02
                <option value ="03">03
                <option value ="04">04
                <option value ="05">05
                <option value ="06">06
                <option value ="07">07
                <option value ="08">08
                <option value ="09">09
                <option value ="10">10
                <option value ="11">11
                <option value ="12">12
              </select>    
          </td>
          <td class="TDcolorgreyBold" colspan="1">
              <input type="text" name ="strExtendedEndDay" onKeyup = "dateTab(this,document.forms[0].strExtendedEndMonth,'2')" maxlength='2' value="28" size="2"/>/
              <input type="text" name ="strExtendedEndMonth" onKeyup = "dateTab(this,document.forms[0].strExtendedEndYear,'2')" maxlength='2' value="08" size="2"/>/
              <input type="text" name ="strExtendedEndYear" onKeyup = "dateTab(this,document.forms[0].strDelete,'4')" onBlur="javascript:isDate(document.forms[0].strExtendedEndYear,document.forms[0].strExtendedEndMonth,document.forms[0].strExtendedEndDay)" maxlength='4' value="2006" size="4"/>
          </td>
          <td class="TDcolorgreyBold" colspan="1">
              <input type = "checkbox" name="strDelete" value="1"/>
          </td>
        </tr>            
        <tr>
            <td class="TDcolorgreyBold" colspan="4"> No records found </td>
        </tr>        
</table>
<input type="hidden" name="noOfRowsInList" value="1">
<input type="hidden" name="currentYear" value="2006">
<table width="600" border="0" cellpadding="3">
    <tr>
      <td class="TDHeader" colspan="2">
        <input type="button" name = "AddNewDate" value="Add New Date" onclick="javascript:addRow()" size="2"/>  </td>
      <td class="TDHeader" colspan="2" align="right">
        <input type="button" name = "Submit" value="Submit" onclick="javascript:saveEntry()" size="2"/>  
      </td>
    </tr>
</table>

</form>
</BODY>
</html>


thnx in advance

Reply By: joefawcett Reply Date: 9/28/2006 2:51:22 AM
The easiest way is to define a CSS class in a stylesheet, either linked or embedded such as:
.newRow
{
  color: #dd0000;
  background-color:#ffd700;
}

Then set the style using script:
var row = tbl.insertRow(lastRow);
row.className = "newRow";


--

Joe (Microsoft MVP - XML)
Reply By: nikeshkm Reply Date: 9/28/2006 3:52:08 AM
thnx buddy...
it worked..


Go to topic 50348

Return to index page 162
Return to index page 161
Return to index page 160
Return to index page 159
Return to index page 158
Return to index page 157
Return to index page 156
Return to index page 155
Return to index page 154
Return to index page 153