2014-04-28 2 views
-2

자바에서 C#의 확인 메시지 상자를 사용하려고하거나 SQL에서 반환 된 오류 번호를 기반으로하는 Ajax ConfirmButtonExtender를 변수에 전달하려고합니다. 예를 들어, 내 SQL int 1 ErrorNumber = 1을 반환하면 사용자가 SQL에 삽입 된 텍스트를 원하는지 여부를 묻고 싶습니다. 그렇다면 입력 할 텍스트를 전달합니다.C# 코드에서 확인 팝업 호출

죄송합니다. 코드 예제가 없지만 시도한 모든 것이 예상대로 작동하지 않습니다.

모든 의견을 환영합니다.

업데이트 나는 달성하려고 시도했지만 해결 방법이 있습니다.

<script type = "text/javascript"> 
     function Confirm_System() { 
     var confirm_value = document.createElement("INPUT"); 
     confirm_value.type = "hidden"; 
     confirm_value.name = "confirm_value"; 
     if (confirm("Do you want to add the System?")) { 
      confirm_value.value = "Yes"; 
     } else { 
      confirm_value.value = "No"; 
     } 
     document.forms[0].appendChild(confirm_value); 
    } 
</script> 

내 웹 페이지에서 버튼을 그때 내 자바 스크립트 함수를 가리 키도록 OnClientClick을 추가 한

protected void c_AddText_Click(object sender, EventArgs e) 
{ 
    string confirmValue = Request.Form["confirm_value"]; 
    if (confirmValue == "Yes") 
    { 
     //do something 
    } 
} 

팝업 확인 상자에서 다시 결과를 얻을 눌렀을 때

OnClientClick = "Confirm_System()" 

누군가가 웹 페이지에 버튼을 가질 필요없이이 작업을 수행하는 방법을 알고 있다면 오류 번호가 내 SQL Stored Proc에서 돌아올 때 실행됩니다. 그러면 감사 할 것입니다.

+1

'코드가 없지만 시도한 모든 것이 작동하지 않습니다.' 이것은 모순입니다. 어떤 코드도 보여줄 수 없다면 어떻게 시도 할 수 있습니까? "예상대로 작동하지 않는다"는 것은 무엇을 의미합니까? – gunr2171

+0

이 데스크톱 앱 또는 웹 앱입니까? –

+0

아마도이게 도움이 될 것 같아요. http://stackoverflow.com/questions/887029/how-to-implement-confirmation-dialog-in-jquery-ui-dialog. –

답변

0

C#에서는 Javascript 코드를 직접 실행할 수 없습니다. 하나는 관리되는 응용 프로그램이고 다른 하나는 단일 웹 페이지의 컨텍스트 내에서 실행되는 상대적으로 빠른 스크립트입니다 (예를 들어 간단하게 넣음).

그러나 C# 응용 프로그램은 브라우저에 HTML을 출력하는 을 담당하기 때문에 거기에 물건을 추가 할 수 있습니다.

<asp:Literal ID="myLiteral" runat="server" /> 요소를 사용하는 경우 필요에 맞게 내용을 변경할 수 있습니다.

이 경우 페이지가로드 될 때 실행되는 javascript를 삽입해야합니다.

예제 (이 C#을 방법입니다) :이 브라우저는 HTML 내용의 추가 조각을 얻을 수 있는지 확인합니다

myLiteral.Text = "<script> alert('I am a popup!'); </script>" 

. 이 경우 브라우저에 메시지 상자 I'm a popup!이 표시됩니다.

페이지에이로드 된 후이 코드 만 실행한다고 가정합니다. jQuery를 사용하는 경우 다음이 더 좋습니다.

이렇게하면 경고가 표시되기 전에 전체 페이지가로드됩니다.

귀하의 페이지가 정확히 무엇을 원하는지 잘 모르겠지만 이것을 구현하면 myLiteral에 자바 스크립트 코드를 자유롭게 추가 할 수 있습니다.

TL
아니요, C#에서는 javascript를 직접 호출 할 수 없습니다.그러나 C#에서 유효한 HTML 내용을 구성한 다음 브라우저에서 가져 와서 실행할 수 있습니다. HTML 페이지는 웹 응용 프로그램과 클라이언트 브라우저 간의 단방향 통신으로 생각하십시오.

면책 조항
은이 문제에 더 이상 재사용이 적은 빠른 - 및 - 더러운 솔루션이 있습니다. 그러나 현재 코드가 어떻게 생겼는지에 대한 정보가 없기 때문에 이것은 내가 제안 할 수있는 가장 쉽고 짧은 솔루션입니다.


또한 <script> 태그 (및 $(document).ready() 호출)를 리터럴의 외부를 둘 수 있었다. 그러나, 그것은 당신이 단지은 단순한 HTML 출력이 아니라 자바 스크립트 코드를 입력 할 수 있다는 것을 의미합니다. 당신이 원하는대로 사용하십시오.

관련 문제