문제

문자열을 취하는 페이지 뒤에 내 코드에 대중이 있습니다. 이 메소드를 JavaScript에서 호출하고 싶습니다.

전달하려는 매개 변수는 DDL에서 변경되는 가변적입니다.

그래서 나는 다음과 같은 것이 있습니다.

 var value = document.getElementById('ddlContact').value;
        <%=PopulateContactFields("value") %>

이것은 값의 데이터가 아니라 'value'라는 단어를 전달합니다.

데이터를 값으로 전달할 적절한 구문을 알 수 없습니다.

감사

도움이 되었습니까?

해결책

다른 사람들이 언급했듯이 JavaScript에서 직접 C# 코드에 액세스하려고하는 것은 불가능합니다.

그러나 당신은 그것과 의사 소통 할 수 있습니다 간접적으로.

당신의 가장 좋은 샷은 jQuery와 [WebMethod] 기인하다.

jQuery를 사용하여 javaScript 함수를 사용하여 ajax 호출을합니다.

function Search() {
    var search = $('#<%= ddlContact.ClientId %>').val();
    var options = {
        type: "POST",
        url: "Default.aspx/Hello",
        data: "{'name' :'" + search + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(msg) {
            alert(msg);
        }
    };
    $.ajax(options);
}

뒤에 코드 :

public partial class _Default : System.Web.UI.Page
{
    [WebMethod]
    public void Hello(string name)
    {
      return "Hi " + name;
    }
}

다른 팁

표시하는 코드는 HTML이 생성 될 때 서버 측면으로 실행됩니다. 다시 말해 브라우저에 닿기 전에 실행되고 사용자는 페이지로 무엇이든 할 수있는 기회가있었습니다.

여기서 어떤 구문을 사용하든 현재 원하는 정보에 액세스 할 수 없습니다. 아직 존재하지 않습니다.

여기서 올바른 접근법은 페이지를 게시하거나 Ajax를 사용 하여이 정보를 서버로 전송 한 다음 요청/응답주기의 꼬리 끝에서 처리를 수행하는 것입니다.

또 다른 옵션은 JavaScript를 사용하여 처리 클라이언트 측을 수행하는 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top