asp.net에서 페이징을 구현하는중인데 자바스크립트부분에서 정의되지 않음 또는 null 참조인 에러가 뜹니다

2019-04-26 (금) 11:04:00 2,048

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPages/MasterPage.master" AutoEventWireup="true" CodeFile="VocaSearch.aspx.cs" Inherits="MyVoca" %>

<%@ Register assembly="TaeyoNetLib" namespace="TaeyoNetLib" tagprefix="taeyo" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server"> </asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">

<script type="text/javascript">

//현재페이지(curPage)에 따른 페이지 div 마우스오버 메서드

function PageOnMouse(pagetd) {

    var pagetdid = pagetd.getAttribute('id')

    var aInTD = "a" + pagetdid.substr(22, 5)

      if (((<%=curPage%> % 5) == 1) && (pagetdid != "ContentPlaceHolder1_tdOne") && (document.getElementById(aInTD).Value != "")) {

              pagetd.style.backgroundImage = 'url("Images/Paging/PageOnMouse.png")';

              pagetd.style.cursor = 'pointer';

              pagetd.style.backgroundRepeat = 'no-repeat'; }

    <td class="PageTdSize" onMouseOver='PageOnMouse(this);' onMouseOut='PageOutMouse(this);' OnClick="tdOneOnClick();" runat="server" id="tdOne">

               <a runat="server" ID="aOne"> 1 </a> </td>

    <td class="PageTdSize" onMouseOver='PageOnMouse(this);' onMouseOut='PageOutMouse(this);' OnClick="tdTwoOnClick();" runat="server" id="tdTwo">

              <a runat="server" ID="aTwo"> 2 </a> </td>

스크립트부분에서 if문의 document.getelementbyid에서

innerText, Value 둘다 저오류가 떠요..

디버거로 확인해보면 aInTD에는 "aOne" 이런식으로 잘받아오거든요

TD속의 a태그를 가져와서 하려는건데 잘안되네요

뭐가문제인걸까요?document.getelementbyid 인수에는 변수로 넣으면 안되는건가요?

|

답변 2개 / 댓글 2개

var

int

힌트만 드립니다.

답변에 대한 댓글 1개

2019-04-26 (금) 12:40:56
aTagInTD = document.getElementById(eval("'" + aInTD + "'"));
생각해본게 이건데 이렇게해도 안되네요
자료형을 따로지정해줘야하나요?
2019-04-26 (금) 11:19:18

javaScript의 고질적인 문제중 하나는 바로 NoneType 을 반환한다는 것이죠.

어디에서 NoneType. 을 반환하는지 찾으셔야할 것 같습니다.

입력값이 NoneType은 아닌가?

반환값이 NoneType은 아닌가? 찾아보셔야 할 것 같습니다.

그리고 JavaScript는 Page가 다 로드된다음에 실행되어야 합니다.

function main(){ Code....}

window.onloade(main)

이런식으로도 함 해보세욤..

제 생각에는 javascript 실행 타이밍이 문제일수도~

답변에 대한 댓글 1개

2019-04-26 (금) 12:42:27
근데 aspx파일이라 script태그를 저기말고는 다른곳으로 옮길수가없어요
그리고 저if문안의 document만 null이지 다른것들은 다 작동이잘됩니다

답변을 작성하려면 로그인이 필요합니다.