2013-07-16 5 views
0

가 내가있는 gridview의 selectedValue 또는 selectedIndex의에 패널의 가시성을 결합하려는 제어, 그래서 난 노력이 :임베디드 코드

<asp:Panel ID="pnlPic" Visible='<% gvAllQuarries.SelectedIndex == -1 ? false:true %>' runat="server" > 

또는

<asp:Panel ID="pnlPic" Visible='<%= gvAllQuarries.SelectedIndex == -1 ? false:true %>' runat="server" > 

하지만, 구문은 틀리며 intelisense에 대해 알지 못합니다. 이런 식으로 어떻게 묶을 수 있니? 그것은 가능한가?

답변

0

GridViewSelectedIndexChanged 이벤트에 이벤트 처리기를 넣으십시오. 그것은 당신이 원하는 방법을 재생 얻을 수 필요하면 C#에 적응하기 위해 논리와 주변 (VB.NET)

Protected Sub gvAllQuarries_SelectedIndexChanged(sender As Object, e As EventArgs) Handles gvAllQuarries.SelectedIndexChanged 

    pnlPic.Visible = Not (gvAllQuarries.SelectedIndex = -1) 

End Sub 

식당 : 당신은 /는 이에 따라 패널을 숨기고 표시 할 수 있습니다. 당신이 모든 인라인을하려는 경우 조건부 블록에서 패널을 포장 할 수있는 대안으로

는 :

VB.NET :

<% If gvAllQuarries.SelectedIndex <> 1 Then%> 
    <asp:Panel ID="Panel1" runat="server"> 

     //put whatever inside the panel 

    </asp:Panel> 
<% End If %> 

C 번호 :

<% if (gvAllQuarries.SelectedIndex != 1) { %> 
    <asp:Panel ID="Panel1" runat="server"> 

     //put whatever inside the panel 

    </asp:Panel> 
<% } %> 

그것은 약간의 지저분하지만, 코드 숨김없이 모든 인라인 코드를 볼 수있는 유일한 방법입니다. Visible='<% gvAllQuarries.SelectedIndex == -1 ? false:true %>' 옵션은 데이터 바인딩 구문 ('<%# %>')을 사용하는 경우에만 작동하며 코드 숨김에서 명시 적으로 DataBind()을 호출해야합니다.

불행히도 '<%= $>'을 사용하면 정적 텍스트 만 출력되며 visible 속성에 적용하기 위해 부울로 평가되지 않습니다.

적응 : this similar question.

+0

tnx하지만 마크 업에서 두 ​​가지 방법이 동일해야합니다. tnx – Mohammadreza

+0

업데이트 된 답변보기 – Katstevens

관련 문제