how to get the text in JS of a cell created on server?

Discussion in 'ASP .Net Web Controls' started by Bob, Jun 16, 2006.

  1. Bob

    Bob Guest

    Hi,

    I have already posted a similar problem but it 's still a problem for me, so
    ...

    I define a table in aspx file and Javascript code.
    Purpose: when the user clicks on any cell of the table, the text of it must
    be rendered in an Alert.

    <asp:Table ID="table1" runat="server">
    </asp:Table>

    <script language="javascript" type="text/javascript">
    function tableclick(event)
    {
    strid=window.event.srcElement.id
    alert(strid) // this works: i get e.g. 3:2
    strid=window.event.srcElement.text}
    alert(strid) // this doens't work ("undefined")
    }

    I create row and cells in the code-behind:
    Dim r As TableRow
    Dim c(50, 20) As TableCell
    For i = 0 To 50
    r = New TableRow()
    For j = 0 To 20
    c(i, j) = New TableCell()
    c(i, j).ID = j & ":" & i.ToString
    r.Cells.Add(c(i, j))
    Next
    Table1.Rows.Add(r)
    Next

    c(3, 2).Text = "this is the text i want in Javascript"
    ....

    My problem is that the Alert gives "undefined".
    I can get the 'ID' of each cell, why not the 'text'?
    I know there is the property 'ClientID' but it's overruled by the ID i
    defined in the code, so that's not the point (i think).

    Thanks for help.
    Bob
     
    Bob, Jun 16, 2006
    #1
    1. Advertising

  2. Bob

    Bob Guest

    I tried with innerText, innerHtml, text .... alwyas the sale 'undefined'.
    In the code-behind, i have no choice: after the dot after c(i,j) i only can
    take 'text'.
    There must be an equivalence between 'text' in code-behind and a property in
    html, no?
    ..


    "Marina Levit [MVP]" <> wrote in message
    news:...
    > Depending on the type of element it is, it may not have a 'text' property.
    > Try 'innerText' or 'innerHTML' depending on what you want.
    >
    > I recommend you use the following reference for DHTML so you know what you
    > can do with what objects:
    >

    http://msdn.microsoft.com/library/d...author/dhtml/reference/objects.asp?frame=true
    >
    > "Bob" <> wrote in message
    > news:%...
    > > Hi,
    > >
    > > I have already posted a similar problem but it 's still a problem for

    me,
    > > so
    > > ..
    > >
    > > I define a table in aspx file and Javascript code.
    > > Purpose: when the user clicks on any cell of the table, the text of it
    > > must
    > > be rendered in an Alert.
    > >
    > > <asp:Table ID="table1" runat="server">
    > > </asp:Table>
    > >
    > > <script language="javascript" type="text/javascript">
    > > function tableclick(event)
    > > {
    > > strid=window.event.srcElement.id
    > > alert(strid) // this works: i get e.g. 3:2
    > > strid=window.event.srcElement.text}
    > > alert(strid) // this doens't work ("undefined")
    > > }
    > >
    > > I create row and cells in the code-behind:
    > > Dim r As TableRow
    > > Dim c(50, 20) As TableCell
    > > For i = 0 To 50
    > > r = New TableRow()
    > > For j = 0 To 20
    > > c(i, j) = New TableCell()
    > > c(i, j).ID = j & ":" & i.ToString
    > > r.Cells.Add(c(i, j))
    > > Next
    > > Table1.Rows.Add(r)
    > > Next
    > >
    > > c(3, 2).Text = "this is the text i want in Javascript"
    > > ...
    > >
    > > My problem is that the Alert gives "undefined".
    > > I can get the 'ID' of each cell, why not the 'text'?
    > > I know there is the property 'ClientID' but it's overruled by the ID i
    > > defined in the code, so that's not the point (i think).
    > >
    > > Thanks for help.
    > > Bob
    > >
    > >
    > >
    > >
    > >

    >
    >
     
    Bob, Jun 16, 2006
    #2
    1. Advertising

  3. No, there isn't necessarily.

    Code behind is just an object with some properties that are intuitive. In
    the end, that in memory object will be turned into a bunch of HTML streamed
    down to the browser. So there is not necessarily a correspondance between
    the javascript and .NET properties.

    Example, the button class has a Text property. But, when that is streamed
    down, it is streamed down as an INPUT element, which has a value HTML
    property.

    I am guesing that this event is not firing on the element you think it is
    firing on. You should find out which element it is, and what type it is, to
    see what properties or methods it has available.

    "Bob" <> wrote in message
    news:%...
    >I tried with innerText, innerHtml, text .... alwyas the sale 'undefined'.
    > In the code-behind, i have no choice: after the dot after c(i,j) i only
    > can
    > take 'text'.
    > There must be an equivalence between 'text' in code-behind and a property
    > in
    > html, no?
    > ..
    >
    >
    > "Marina Levit [MVP]" <> wrote in message
    > news:...
    >> Depending on the type of element it is, it may not have a 'text'
    >> property.
    >> Try 'innerText' or 'innerHTML' depending on what you want.
    >>
    >> I recommend you use the following reference for DHTML so you know what
    >> you
    >> can do with what objects:
    >>

    > http://msdn.microsoft.com/library/d...author/dhtml/reference/objects.asp?frame=true
    >>
    >> "Bob" <> wrote in message
    >> news:%...
    >> > Hi,
    >> >
    >> > I have already posted a similar problem but it 's still a problem for

    > me,
    >> > so
    >> > ..
    >> >
    >> > I define a table in aspx file and Javascript code.
    >> > Purpose: when the user clicks on any cell of the table, the text of it
    >> > must
    >> > be rendered in an Alert.
    >> >
    >> > <asp:Table ID="table1" runat="server">
    >> > </asp:Table>
    >> >
    >> > <script language="javascript" type="text/javascript">
    >> > function tableclick(event)
    >> > {
    >> > strid=window.event.srcElement.id
    >> > alert(strid) // this works: i get e.g. 3:2
    >> > strid=window.event.srcElement.text}
    >> > alert(strid) // this doens't work
    >> > ("undefined")
    >> > }
    >> >
    >> > I create row and cells in the code-behind:
    >> > Dim r As TableRow
    >> > Dim c(50, 20) As TableCell
    >> > For i = 0 To 50
    >> > r = New TableRow()
    >> > For j = 0 To 20
    >> > c(i, j) = New TableCell()
    >> > c(i, j).ID = j & ":" & i.ToString
    >> > r.Cells.Add(c(i, j))
    >> > Next
    >> > Table1.Rows.Add(r)
    >> > Next
    >> >
    >> > c(3, 2).Text = "this is the text i want in Javascript"
    >> > ...
    >> >
    >> > My problem is that the Alert gives "undefined".
    >> > I can get the 'ID' of each cell, why not the 'text'?
    >> > I know there is the property 'ClientID' but it's overruled by the ID i
    >> > defined in the code, so that's not the point (i think).
    >> >
    >> > Thanks for help.
    >> > Bob
    >> >
    >> >
    >> >
    >> >
    >> >

    >>
    >>

    >
    >
     
    Marina Levit [MVP], Jun 16, 2006
    #3
  4. most dom objects have an innerHTML and innerText, be sue you are spelling
    them correctly as javascript is case sensitive.

    <table>
    <tr >
    <td onclick="alert(this.innerText)">r1col1</td>
    </tr>
    </table>

    note: window.event is IE only.

    -- bruce (sqlwork.com)



    "Bob" <> wrote in message
    news:%...
    >I tried with innerText, innerHtml, text .... alwyas the sale 'undefined'.
    > In the code-behind, i have no choice: after the dot after c(i,j) i only
    > can
    > take 'text'.
    > There must be an equivalence between 'text' in code-behind and a property
    > in
    > html, no?
    > ..
    >
    >
    > "Marina Levit [MVP]" <> wrote in message
    > news:...
    >> Depending on the type of element it is, it may not have a 'text'
    >> property.
    >> Try 'innerText' or 'innerHTML' depending on what you want.
    >>
    >> I recommend you use the following reference for DHTML so you know what
    >> you
    >> can do with what objects:
    >>

    > http://msdn.microsoft.com/library/d...author/dhtml/reference/objects.asp?frame=true
    >>
    >> "Bob" <> wrote in message
    >> news:%...
    >> > Hi,
    >> >
    >> > I have already posted a similar problem but it 's still a problem for

    > me,
    >> > so
    >> > ..
    >> >
    >> > I define a table in aspx file and Javascript code.
    >> > Purpose: when the user clicks on any cell of the table, the text of it
    >> > must
    >> > be rendered in an Alert.
    >> >
    >> > <asp:Table ID="table1" runat="server">
    >> > </asp:Table>
    >> >
    >> > <script language="javascript" type="text/javascript">
    >> > function tableclick(event)
    >> > {
    >> > strid=window.event.srcElement.id
    >> > alert(strid) // this works: i get e.g. 3:2
    >> > strid=window.event.srcElement.text}
    >> > alert(strid) // this doens't work
    >> > ("undefined")
    >> > }
    >> >
    >> > I create row and cells in the code-behind:
    >> > Dim r As TableRow
    >> > Dim c(50, 20) As TableCell
    >> > For i = 0 To 50
    >> > r = New TableRow()
    >> > For j = 0 To 20
    >> > c(i, j) = New TableCell()
    >> > c(i, j).ID = j & ":" & i.ToString
    >> > r.Cells.Add(c(i, j))
    >> > Next
    >> > Table1.Rows.Add(r)
    >> > Next
    >> >
    >> > c(3, 2).Text = "this is the text i want in Javascript"
    >> > ...
    >> >
    >> > My problem is that the Alert gives "undefined".
    >> > I can get the 'ID' of each cell, why not the 'text'?
    >> > I know there is the property 'ClientID' but it's overruled by the ID i
    >> > defined in the code, so that's not the point (i think).
    >> >
    >> > Thanks for help.
    >> > Bob
    >> >
    >> >
    >> >
    >> >
    >> >

    >>
    >>

    >
    >
     
    bruce barker \(sqlwork.com\), Jun 16, 2006
    #4
  5. Bob

    Bob Guest

    Thanks, it works with innerText.


    "bruce barker (sqlwork.com)" <> wrote
    in message news:...
    > most dom objects have an innerHTML and innerText, be sue you are spelling
    > them correctly as javascript is case sensitive.
    >
    > <table>
    > <tr >
    > <td onclick="alert(this.innerText)">r1col1</td>
    > </tr>
    > </table>
    >
    > note: window.event is IE only.
    >
    > -- bruce (sqlwork.com)
    >
    >
    >
    > "Bob" <> wrote in message
    > news:%...
    > >I tried with innerText, innerHtml, text .... alwyas the sale 'undefined'.
    > > In the code-behind, i have no choice: after the dot after c(i,j) i only
    > > can
    > > take 'text'.
    > > There must be an equivalence between 'text' in code-behind and a

    property
    > > in
    > > html, no?
    > > ..
    > >
    > >
    > > "Marina Levit [MVP]" <> wrote in message
    > > news:...
    > >> Depending on the type of element it is, it may not have a 'text'
    > >> property.
    > >> Try 'innerText' or 'innerHTML' depending on what you want.
    > >>
    > >> I recommend you use the following reference for DHTML so you know what
    > >> you
    > >> can do with what objects:
    > >>

    > >

    http://msdn.microsoft.com/library/d...author/dhtml/reference/objects.asp?frame=true
    > >>
    > >> "Bob" <> wrote in message
    > >> news:%...
    > >> > Hi,
    > >> >
    > >> > I have already posted a similar problem but it 's still a problem for

    > > me,
    > >> > so
    > >> > ..
    > >> >
    > >> > I define a table in aspx file and Javascript code.
    > >> > Purpose: when the user clicks on any cell of the table, the text of

    it
    > >> > must
    > >> > be rendered in an Alert.
    > >> >
    > >> > <asp:Table ID="table1" runat="server">
    > >> > </asp:Table>
    > >> >
    > >> > <script language="javascript" type="text/javascript">
    > >> > function tableclick(event)
    > >> > {
    > >> > strid=window.event.srcElement.id
    > >> > alert(strid) // this works: i get e.g. 3:2
    > >> > strid=window.event.srcElement.text}
    > >> > alert(strid) // this doens't work
    > >> > ("undefined")
    > >> > }
    > >> >
    > >> > I create row and cells in the code-behind:
    > >> > Dim r As TableRow
    > >> > Dim c(50, 20) As TableCell
    > >> > For i = 0 To 50
    > >> > r = New TableRow()
    > >> > For j = 0 To 20
    > >> > c(i, j) = New TableCell()
    > >> > c(i, j).ID = j & ":" & i.ToString
    > >> > r.Cells.Add(c(i, j))
    > >> > Next
    > >> > Table1.Rows.Add(r)
    > >> > Next
    > >> >
    > >> > c(3, 2).Text = "this is the text i want in Javascript"
    > >> > ...
    > >> >
    > >> > My problem is that the Alert gives "undefined".
    > >> > I can get the 'ID' of each cell, why not the 'text'?
    > >> > I know there is the property 'ClientID' but it's overruled by the ID

    i
    > >> > defined in the code, so that's not the point (i think).
    > >> >
    > >> > Thanks for help.
    > >> > Bob
    > >> >
    > >> >
    > >> >
    > >> >
    > >> >
    > >>
    > >>

    > >
    > >

    >
    >
     
    Bob, Jun 17, 2006
    #5
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. news.rcn.com
    Replies:
    1
    Views:
    9,815
    Chris Smith
    Jul 12, 2004
  2. Phillip Roncoroni
    Replies:
    14
    Views:
    1,143
    Toby A Inkster
    Apr 5, 2004
  3. Bob
    Replies:
    4
    Views:
    370
  4. John Dalberg
    Replies:
    4
    Views:
    801
  5. Empire City
    Replies:
    3
    Views:
    435
    Empire City
    Apr 30, 2004
Loading...

Share This Page