2011-02-02 6 views
0

가이 같은 일부 코드 :JQuery와 asp.net 버튼 가시성

<form id="form1" runat="server"> 
        <input id="inpHide" type="hidden" runat="server" /> 
        <asp:Button ID="btnExcel" runat="server" Text="Excel" AccessKey="E" BorderWidth="0px" 
         OnClick="btnExcel_Click" ToolTip="Excel" Visible="false" /> 
        </form> 

`bValid` is some part of code 

왜이 나던 일 :

if (bValid) { 
     $(this).dialog("close"); 
$("#btnExcel").show(); } 

과 같이 .ASPX? 해결 방법은 무엇입니까? 버튼을 탐색하려면?

이 될 수는 접근 할 수없는 이유는

var button = $('#btnExcel')[0]; 
         alert(button); 

쇼 : 정의되지 않은!

도움을 요청하십시오.

답변

5

로 엉망이 ID를 얻습니다. 그것은 ASPX 페이지에서 Visible = "true"로 설정해야합니다. 그렇지 않으면 버튼이 html로 렌더링되지 않기 때문입니다.

버튼에 attirbute (또는 CssStyle attirbute) 스타일을 style = "display : none;"으로 설정할 수 있습니다. 다음 상황이

<asp:Button ID="btnExcel" runat="server" Text="Excel" AccessKey="E" BorderWidth="0px" 
         OnClick="btnExcel_Click" ToolTip="Excel" Visible="true" style="display:none;" /> 
+0

고맙습니다 Visible = "false"To Visible = "참"Right ?? – Pratik

+0

예, 답안의 코드에 표시된대로 스타일 특성을 설정하십시오. 즉 style = "display : none;"입니다. –

0

버튼의 표시를 없음으로 설정할 수 있습니까?

+0

어떻게 .. 난 아무 생각이 – Pratik

0

ASP.Net에서 생성 된 서버 컨트롤의 ID가 브라우저에서 다르기 때문에 문제가 발생합니다. 브라우저에서 HTML 소스를보고 올바른 컨트롤 ID를 찾아서 jQuery 코드에서 사용하십시오. http://forums.asp.net/p/1522697/3664258.aspx

+0

버튼은이 서버 측에서 false로 설정되어 있기 때문에 HTML로 렌더링되지 않습니다 작동합니다. false로 설정된 ASP 컨트롤은 렌더링되지 않습니다. –

0

btnExcel는 서버 측 제어하기 때문에 엉망이 될 것입니다 : 당신은 또한 더이보기

ASP.Net

의 된 ClientID 기능을 시도 할 수 있습니다.

당신은 버튼으로 = 눈에 보이는 서버 측 "false"를 가질 수 없습니다 document.getElementByid(<%=btnExcel.ClientID%>)

+1

Visible 속성이 false이므로 사실상 (html로) 버튼이 표시되지 않습니다. –