asp.net에서 페이징을 구현하는중인데 자바스크립트부분에서 정의되지 않음 또는 null 참조인 에러가 뜹니다
본문
<%@ 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
javaScript의 고질적인 문제중 하나는 바로 NoneType 을 반환한다는 것이죠.
어디에서 NoneType. 을 반환하는지 찾으셔야할 것 같습니다.
입력값이 NoneType은 아닌가?
반환값이 NoneType은 아닌가? 찾아보셔야 할 것 같습니다.
그리고 JavaScript는 Page가 다 로드된다음에 실행되어야 합니다.
function main(){ Code....}
window.onloade(main)
이런식으로도 함 해보세욤..
제 생각에는 javascript 실행 타이밍이 문제일수도~
var
int
힌트만 드립니다.