programing

ASP 사용 방법.서버 제어 특성의 NET <%= 태그?

goodsources 2023. 8. 4. 23:01
반응형

ASP 사용 방법.서버 제어 특성의 NET <%= 태그?

효과:

<span value="<%= this.Text %>" />

이것은 작동하지 않습니다.

<asp:Label Text="<%= this.Text %>" runat="server" />

왜 그런 것일까요?

두 번째 대소문자가 제대로 작동하도록 하려면 어떻게 해야 합니까? 즉, 레이블의 텍스트를 "텍스트" 변수 값으로 설정할 수 있습니까?

데이터 바인딩사용

<asp:Label ID="Label1" runat="server" Text="<%# DateTime.Now %>" ></asp:Label>

암호 뒤에,

protected void Page_Load(object sender, EventArgs e){
  DataBind();
}

당신은 이걸 할 수 있다.

 <asp:Label ID="Label1" runat="server" ><%= variable%></asp:Label>

내 코드에서 나는 이와 같은 것을 쉽게 사용하지만 ListView Item 템플릿과 같은 데이터 바인딩 제어에서 사용합니다.

 <asp:HyperLink ID="EditAction" class="actionLinks" Visible='<%#Eval("IsTrue").ToString() != "True"%>' runat="server" NavigateUrl='<%# Eval("ContentId","/articles/edit.aspx?articleid={0}")%>' />

그러나 <%#...%>를 사용하여 데이터 바인딩 제어 외부에서 사용하려고 하면 작동하지 않습니다.

쉽게 처리할 수 있습니다.

<a href="<%=myHref%>">My href</a> 

그러나 서버 제어 및 데이터 바인딩 제어 외부의 경우.페이지 로드 이벤트에서 DataBind()를 명시적으로 호출해야 합니다.

<asp:Hyperlink ID="aa" NavigateUrl='<%#myHref%>' >

코드에서 서버 컨트롤 값을 설정해야 합니다.

먼저 라벨 컨트롤에 ID를 할당하여 컨트롤에 액세스할 수 있도록 합니다.

<asp:Label ID="myLabel" runat="server" />

그런 다음 Page_Load 함수에서 레이블 'Text' 필드의 값을 설정합니다.

protected void Page_Load(object sender, EventArgs e)
{
    myLabel.Text = 'Whatever you want the label to display';
}

이 기능은 파일 뒤에 있는 코드에 있거나, 모델 뒤에 있는 코드를 사용하지 않는 경우 aspx 페이지 안에 필요합니다.

<script runat="server">
    protected void Page_Load(object sender, EventArgs e)
    {
        myLabel.Text = 'Whatever you want the label to display';
    }
</script>

행운을 빌어요.

이것을 그렇게 표시하는 방법은 확실하지 않지만, 이것은 약간 중복된 것입니다. 스레드를 보십시오.

당신의 마크업에 코드를 포함시키는 것이 당신의 마크업을 더 명확하게 하거나 더 우아하게 만들 것이라고 생각하지 않습니다.

<asp:Label>런타임에 컴파일하고 html 태그로 변환하는 중입니다.다음과 같은 코드를 사용하여 텍스트를 설정할 수 있습니다.

<asp:Label id="Text1" runat="server" />
<% Text1.Text = this.Text;%>

업데이트: 제 변형 모델이 작동하지 않는 것 같습니다. 이것이 더 좋습니다.

protected void Page_Load(object sender,EventArgs e) 
{
    Text1.Text = this.Text;
}

이 문제에 대한 좋은 기술적 분석을 원하는 사람들을 위해 이 작은 덩어리를 던져주는 것입니다. -- https://blogs.msdn.microsoft.com/dancre/2007/02/13/the-difference-between-and-in-asp-net/

저는 핵심이 다른 답변들과 상당히 일치한다고 생각합니다.

  • <%= 표현식은 렌더 시간에 평가됩니다.
  • <%# 식은 DataBind() 시간에 평가되며 DataBind()가 호출되지 않으면 전혀 평가되지 않습니다.
  • <%# 식을 서버측 컨트롤에서 속성으로 사용할 수 있습니다.<%= 식은 사용할 수 없습니다.

언급URL : https://stackoverflow.com/questions/1393348/how-to-use-asp-net-tags-in-server-control-attributes

반응형