Remember a DataGrid is an HTML table.
To dynamically add rows and cells to a table
you need to get a reference to the table using
the ID attribute or the NAME attribute.
In the function below, I am referencing a table
with the ID="t1".
Then I add a new ROW (TR) to the table. In this case,
I am adding a row to the end of the table.
Then I add a new CELL (TD) to the newly created TR.
Then I set the innerHTML property to a value.
Hope this helps!!
function makeTable()
{
// add a new row to the end of the table
// you can get a reference to the target table
// using IE's ID attribute or the more
// universal: document.all.myTable.insertRow(index)
var tr = t1.insertRow(t1.rows.length);
// add a new cell to the newly created TR
var td = tr.insertCell(tr.cells.length);
td.innerHTML = "This or That";
}
Dallas Martin
Quoting mzancana <[EMAIL PROTECTED]>:
> Hi Peter, Travis and everyone--
>
> Peter, you're right. We are using an AJAX approach.
>
> I tried using different Table properties (insertRow, appendChild),
> etc. I couldn't get any of them to work. I changed
> my "insertAdjacentHTML" to innerHTML, but that didn't help.
>
> I am very, very new to all of this and have been trying to solve this
> issue for several days (tearing code apart over and over and trying
> new ways) -- which has produced no results other than my frustration
> and desperation.
>
> Maybe I'm going down the completely wrong path here. Essentially,
> here is an explanation of my ASP.NET webform application and what I
> want it to do:
>
> Employees add how much time they spend on a job, and then that
> information is added to a SQL database and displayed in a datagrid.
> I've got everything working on the client side, except the refreshing
> of the datagrid.
>
> When the page loads and/or when a new record is added, I want the
> datagrid to update (without the page refreshing). The information
> that is returned is in XML format, and I somehow have to get it into
> the datagrid.
>
> Here's one record of the XML that is returned into variable
> oResult.value:
>
> "<ROOT><NewDataSet>
> <ActivityHistory>
> <ActivityID>312</ActivityID>
> <CustomerName>Test</CustomerName>
> <Description>312-Development</Description>
> <ActivityDate>2005-08-10T00:00:00.0000000-05:00</ActivityDate>
> <ReferenceCode>J-1007</ReferenceCode>
> <Minutes>15.00</Minutes>
> </ActivityHistory>
> </NewDataSet></ROOT>"
>
> But for a given period of time, there will be several of these
> ActivityHistory records.
>
> Below is the function I have so far, but as I said, I could be going
> down a completely wrong path. I would greatly appreciate if any of
> you have corrections for my code or if you have ideas/suggestions for
> a different/better way to do this (since my way doesn't work,
> anything would be better). Yes, I'm a newbie, and I'm just
> not "getting" this at all. I have no idea what to do now that
> nothing has worked thus far.
>
>
>
> function LoadTable()
> {
>
> var Employee = document.getElementById
> ("_ctl1__ctl0_ddlEmployee").value;
> var StartDate = document.getElementById
> ("_ctl1__ctl0_TextStartDate").value;
> var EndDate = document.getElementById
> ("_ctl1__ctl0_TextEndDate").value;
>
> // Update the xml island with the employee history
> information
> var oResult = Methods.EmployeeActivity(Employee,
> StartDate, EndDate);
>
> var xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
> xmlDoc.async=false;
> xmlDoc.load("activityhistory.xml");
>
> var loaded = xmlDoc.loadXML(oResult.value);
> if (loaded) {
> var xslDoc=new ActiveXObject
> ("Microsoft.XMLDOM");
> xslDoc.async=false;
> xslDoc.load("ActivityHistoryStyle.xsl");
> document.getElementById
> ("Table1Inner").innerHTML = xmlDoc.transformNode(xslDoc);
> }
> }
>
> Thanks!
>
>
> --- In [email protected], "Peter Brunone"
> <[EMAIL PROTECTED]> wrote:
> > Travis,
> >
> > AJAX is not a product or a tool. It is a recently-coined
> > acronym to describe the several-years-old practice of data retrieval
> > without refreshing the whole page. In fact, it looks like
> Michelle's
> > code below is already using an AJAX approach :)
> >
> > Michelle,
> >
> > It looks like you're trying to assign to a property called
> > "insertAdjacentHTML" on a table (presumably the table containing the
> > datagrid); where did you get this code, and what do you want it to
> do?
> > If you want to add rows to a table in the browser, you'll need to
> read
> > up on the object model, which you can do at
> http://tinyurl.com/52nbl (MS
> > HTML Reference).
> > Let us know if you need more help.
> >
> > Cheers,
> >
> > Peter
> >
> > -----Original Message-----
> > From: [email protected] On Behalf Of Falls,
> Travis D
> > (HTSC, CASD)
> >
> > AJAX is a tool to do server side calls and send the data to the
> screen
> > without a post back so you could recall the load of said
> datagrid... I
> > am having a serious NDM production issue but if no body else
> explains
> > this further I will try to when I get home tonight. sorry I can't
> write
> > more now.
> >
> > Travis D. Falls | Consultant RAFT.Net IT | 860.547.4070 |
> > [EMAIL PROTECTED]
> >
> > -----Original Message-----
> > From: [email protected] Behalf Of Michelle
> Zancanaro
> >
> > Hi Travis --
> >
> > As I said, I'm new to all of this....anyway, I went to that link
> and am
> > not seeing any way to add a record to a datagrid without having the
> page
> > refresh.
> >
> > If you could provide some additional information/details, etc., I'd
> > really appreciate it.
> >
> > Thanks,
> > Michelle
> >
> > From: [email protected] n Behalf Of Falls,
> Travis D
> > (HTSC, CASD)
> >
> > There is an awosome product (free) called AJAX that allows you to do
> > this.
> > http://ajax.schwarz-interactive.de/csharpsample/default.aspx
> >
> > Has a learning curve but I think many on this list have used and is
> > decently worth it.
> >
> > Travis D. Falls | Consultant RAFT.Net IT | 860.547.4070 |
> > [EMAIL PROTECTED]
> >
> >
> > From: [email protected]
> >
> > Hi --
> >
> > I'm fairly new to .NET. I've got a webform application that records
> > the amount of time an employee spends on a job. The jobs/time for a
> > given period are then displayed in a datagrid. I'd like it all to
> run
> > client side, so the screen doesn't load again.
> >
> > When I add a record, the information is added to the database
> (we're
> > using remote scripting for that). And the information in the
> record
> > is available if I do xmlDoc.transformNode(xslDoc) -- I can see that
> > the info is retrieved when I view it using the command window in
> > debugger mode.
> >
> > But.....the datagrid does not get updated with the new record. Has
> > anyone added rows/records to a datagrid without a page refresh?
> Any
> > help/suggestions and especially sample code are greatly
> appreciated!!
> >
> > Here's the Javascript function I'm using to load/reload the datagrid
> > table (sorry about the way the text wrapped):
> >
> > function LoadTable()
> > {
> > var Employee = document.getElementById
> > ("_ctl1__ctl0_ddlEmployee").value;
> > var StartDate = document.getElementById
> > ("_ctl1__ctl0_TextStartDate").value;
> > var EndDate = document.getElementById
> ("_ctl1__ctl0_TextEndDate").value;
> >
> > // Update the xml island with the employee history
> > information
> > var oResult = Methods.EmployeeActivity(Employee,
> > StartDate, EndDate);
> >
> > var xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
> > xmlDoc.async=false;
> > xmlDoc.load("activityhistory.xml");
> >
> > var loaded = xmlDoc.loadXML(oResult.value);
> > if (loaded) {
> > var xslDoc=new ActiveXObject
> > ("Microsoft.XMLDOM");
> > xslDoc.async=false;
> > xslDoc.load("ActivityHistoryStyle.xsl");
> > document.getElementById
> > ("Table1").insertAdjacentHTML = xmlDoc.transformNode(xslDoc);
> > }
> > }
>
>
>
>
>
>
> Yahoo! Groups Links
>
>
>
>
>
>
>
------------------------ Yahoo! Groups Sponsor --------------------~-->
<font face=arial size=-1><a
href="http://us.ard.yahoo.com/SIG=12hdeam9n/M=362335.6886445.7839731.1510227/D=groups/S=1705006764:TM/Y=YAHOO/EXP=1123705725/A=2894361/R=0/SIG=13jmebhbo/*http://www.networkforgood.org/topics/education/digitaldivide/?source=YAHOO&cmpgn=GRP&RTP=http://groups.yahoo.com/">In
low income neighborhoods, 84% do not own computers. At Network for Good, help
bridge the Digital Divide!</a>.</font>
--------------------------------------------------------------------~->
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/AspNetAnyQuestionIsOk/
<*> To unsubscribe from this group, send an email to:
[EMAIL PROTECTED]
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/