2012-07-19 2 views
0

나는 간단한 JS 팝업을 "are you sure..." 창과 드롭 다운 목록 및 asp:button과 함께 가지고 있습니다. 내가 버튼을 클릭하면 내가 원하는 것은이 메시지를 얻을 수 있습니다 : 액션 dropdownlist.SelectedItem.Text에서 오는 문자열입니다JS에서 C# var의 asp.net 값

"Are you sure you want to perform <%= ACTION %>?"

.

다음은 작동하지 않습니다

OnClientClick="return confirm('Are you sure you want to perform <%= ACTION %>?); 

그것은 실제로 단지 대신 값의 <%= ACTION %>를 인쇄합니다.

function testMe() { 
    return confirm('Are you sure you want to perform ' + document.getElementById('<%= hfAction.ClientID %>').value + '?'); 
} 

OnClientClick="testMe();" 

그러나 위의 원인에 관계없이 cancel 또는 OK을 클릭의 다시 게시 :

는 I도 노력했다.

올바른 사용법은 무엇입니까?

+0

C# 코드에서 ACTION을 정의한 방법 – Habib

+0

네, 간단한 문자열입니다. – user1468537

답변

2

이 시도 :

죄송합니다
<asp:DropDownList runat="server" ID="ACTION"> 
    <asp:ListItem>Action 1</asp:ListItem> 
    <asp:ListItem>Action 2</asp:ListItem> 
</asp:DropDownList> 

<script type="text/javascript"> 
    function ExecuteConfirm() { 
     var ddlId = '<%= ACTION.UniqueID %>'; 
     var action = $("#" + ddlId + " option:selected").text(); 
     return confirm('Are you sure you want to perform ' + action + ' ?'); 
    } 
</script> 

<asp:Button runat="server" Text="Button" OnClientClick="return ExecuteConfirm();" /> 
+0

Microsoft JScript 런타임 오류 : '$'속성 값이 null이거나 정의되지 않았으며 Function 개체가 아닙니다. – user1468537

+0

샘플 코드에서 jquery를 사용했습니다. "var action = document.getElementById (ddlId) .value;"를 사용할 수 있습니다. "var action = $ ..."을 포함하는 그 대신에 –

+0

Ok 헤더의 가져 오기가 누락되었습니다. 이제 잘 작동합니다. 감사합니다 :) – user1468537

2

서버 컨트롤 선언 내에 서버 태그를 사용할 수 없습니다. 개체를 초기화 할 때 코드에서 OnClientClick 스크립트를 설정하십시오.

mybutton.OnClientClick 
    = string.format("return confirm('Are you sure you want to perform {0}?');", ACTION); 
+0

그 중 하나도 작동하지 않았다 – user1468537

+0

어떤 의미로? 같은 문제? 오류? –

1

, 내 마지막 대답은 완전 쓰레기 (게시하기 전에 생각하지 않았다)이었다. 이건 어때?

function testMe() { 
    var val = document.getElementById('<%= hfAction.ClientID %>').value; 
    return confirm('Are you sure you want to perform ' + val + '?'); 
} 

OnClientClick="return testMe();" 

방금 ​​OnClientClick에서 수익을 얻지 못했습니다.

+0

거의 거기. 내가 겪고있는 문제는 DDL에서 다른 항목을 선택한 후 hfAction.value의 새 값을 선택하지 않는다는 것입니다. 포스트 백을 수행하는 경우에만 값을 선택합니다. 나는 이렇게 설정했다 :'protected void ddlActions_SelectedIndexChanged (객체 발신자, EventArgs e) { hfAction.Value = ddlActions.SelectedItem.Text; }' – user1468537

+0

hfAction 대신 DDL을 쿼리 할 수 ​​있습니까? 그래서 document.getElementById ('ddlActions.ClientID'). value? –

관련 문제