2009-09-07 7 views
2

서명 장치에서 객체를 반환했습니다.이 객체에 대한 빠른 감시를 할 때, 그 배열은 길고, 코드 뒤에 웹 메서드 (vb.net)로 전달할 때 나에게 아무것도주지 않는다고 말했습니다. 도움이 필요합니다. 참고 : 저는 activeX를 사용하여 장치에서 서명을 캡처하고 있습니다. 이 내의 WebMethod입니다JavaScript 배열을 코드 숨김으로 전달합니까?

function OnSave() { 
    var sign = document.FORM1.SigPlus1.SignatureString; 
    PageMethods.Save(sign); 
    } 

:

자바 스크립트 코드

<WebMethod()> _ 
Public Shared Function Save(ByVal obj As Object) As String 

    Dim obj1 As New PFSIGNATURELib.SigniShellSignature 
    obj1.SignatureMime = obj 
    obj1.SaveBitmapToFile(System.AppDomain.CurrentDomain.BaseDirectory() & "\sign1.bmp", 200, 200) 

    Return "\sign1.bmp" 
End Function 

답변

1

내가 ASP.Net에 대해 잘 모르겠지만 PageMethods.Save 기능을 처리 할 수없는 것처럼 보인다 long의 배열. 또 다른 가능성은 sign 변수가 자바 스크립트 코드에서 null이라는 것입니다.

에 한번 당신의 자바 스크립트 기능, 또는 더 나은 아직 중간에

alert(sign); 

를 추가, 불을 지르고를 설치하고 대신

console.log(sign); 

을한다. 이렇게하면 기호 var에 실제로 생각하는 내용이 포함되어 있는지 확인할 수 있습니다.

실제로 숫자 배열이 포함 된 경우 (자바 스크립트에는 long 유형이 없음) PageMethods.Save 함수를 호출하기 전에 다른 것으로 변환해야 할 수도 있습니다.

예를 들어, 숫자의 공백으로 구분 된 문자열로 sign 변환합니다이 자바 스크립트 조각은 : 당신이 당신의 WebMethod이 문자열을 전달하기 위해 관리하는 경우

s = "" 
for (i in sign) { 
    s += sign[i] + " "; 
} 
sign = s 

, 당신은 다시 얻을 구문 분석 일부 문자열을 사용할 수 있습니다 원래 배열.

관련 문제