왜 작동하지 않습니까?asp.net, 사용/사용 안 함 tabpanel
<ajaxToolkit:TabPanel Enabled='<%# User.IsInRole("admin") %>'...
이 작동하는 동안 :
<asp:TextBox Enabled='<%# User.IsInRole("admin") %>'...
왜 작동하지 않습니까?asp.net, 사용/사용 안 함 tabpanel
<ajaxToolkit:TabPanel Enabled='<%# User.IsInRole("admin") %>'...
이 작동하는 동안 :
<asp:TextBox Enabled='<%# User.IsInRole("admin") %>'...
는 바인딩 컨텍스트 (바운드 컨트롤) 내 첫 번째 예인가? 아마도 바인딩 지시문 대신 출력 지시문을 사용하고 싶습니까?
<ajaxToolkit:TabPanel Enabled='<%= User.IsInRole("admin") %>'
편집 : 내 나쁜. <%= %>
은 당신이 원하는 것이 아닌 Response.Write로 변환됩니다. ASP.NET MVC에도 익숙합니다. 가장 좋은 방법은 코드를 runat="server"
으로 만들고 ID를 지정하고 코드 숨김 값을 설정하는 것입니다.
<ajaxToolkit:TabPanel runat="server" ID="myTabs" ... />
protected void Page_Load(object sender, EventArgs e)
{
myTabs.Enabled = User.IsInRole("admin");
...
}
흠 ... 그건 맞는 것 같아. 그러나 이제는 다음이 발생합니다. 파서 오류 메시지 : 'Enabled'속성에 대한 문자열 표현 '<% = User.IsInRole ("admin") %>'에서 'System.Boolean'형식의 개체를 만들 수 없습니다. . – henrico
예, <%= %>은 클라이언트 측 코드에서만 작동합니다. MS는 서버 측 컨트롤을 사용하는 경우 코드 숨김으로 데이터 바인딩 또는 속성을 설정한다고 가정합니다. –
왜 안 되니? 무슨 일이야? – SLaks
아무 일도 일어나지 않고 TabPanel이 활성화 된 상태로 유지됩니다. 입력 할 때만 Enabled = "false"이면 회색으로 변합니다. TextBox는 예상대로 작동하며 사용자 역할에 따라 사용/사용 안 함으로 설정됩니다. – henrico