왜 이것이 렌더링시 날짜/시간을 표시하지 않습니까?Webform 속성의 인라인 코드
<asp:Label runat="server" ID="test" Text="<%= DateTime.Now.ToString() %>" ></asp:Label>
어쨌든이 작업을 수행 할 수 있습니까?
왜 이것이 렌더링시 날짜/시간을 표시하지 않습니까?Webform 속성의 인라인 코드
<asp:Label runat="server" ID="test" Text="<%= DateTime.Now.ToString() %>" ></asp:Label>
어쨌든이 작업을 수행 할 수 있습니까?
그럼 asp 태그가 렌더링됩니다. 런타임에 속성을 설정해야합니다. 또는 <%= DateTime.Now.ToString() %>
을 수행하십시오.
Asp.net 서버 컨트롤 대신 당신이 할 수 있으며, <% = 잘 재생되지 않습니다 :
<span><%= DateTime.Now.ToString() %></span>
시를. 코드 숨김에 레이블의 텍스트를 설정할 수도 있습니다. 시나리오에 따라 PreRenderComplete에서 설정할 수 있습니다.
여기 실제 문제는 마크 업 페이지에 코드가있는 WebControl의 속성을 설정해야한다는 것입니다. 이 작업을 수행하는 유일한 방법은 전체 컨트롤을 코드 블록에 넣는 것입니다. 그것의 우아한 또는 제안하지만 다른 모든 실패하면 작동합니다.
<%
var stringBuilder = new StringBuilder();
var stringWriter = new StringWriter(stringBuilder);
var htmlWriter = new HtmlTextWriter(stringWriter);
var label = new Label { Text = DateTime.Now.ToString() };
label.RenderControl(htmlWriter);
Response.Write(stringBuilder.ToString());
%>
그러나 컨트롤을 상태를 유지해야하는 경우에는 작동하지 않습니다.
업데이트 : 내가 더 나은 해결책을 찾을 않았다
케빈의 답변을 조사한 후. 나는 뒤에 MVC 페이지가없는 코드가 있지만 코드 블록을 통해 페이지의 컨트롤을 참조 할 수 있으므로 새로운 솔루션은 다음과 같습니다. 주 -이 작업을 수행하려면 먼저 코드 블록을 배치해야합니다.
<%
lblTest.Text = DateTime.Now.ToString();
%>
<asp:label runat="server" ID="lblTest" />
영감을 주셔서 감사합니다.
당신이 파일 뒤에 코드를 가지고 있는지 확실하지 않습니다,하지만 당신이 정말로에서 .aspx 마크 업 레이블의 Text
속성을 설정해야하는 경우 페이지에 다음 코드를 추가 할 수 있습니다
<script runat="server">
protected override void OnPreLoad(EventArgs e)
{
if (!Page.IsPostBack)
{
this.test.Text = DateTime.Now.ToString();
base.OnPreLoad(e);
}
}
</script>
이렇게하면 다시 게시 할 때 레이블 컨트롤의 상태를 유지 관리 할 수 있습니다.
코드가 없거나 디자이너 파일 인 MVC 뷰 페이지이지만 감사합니다. – chief7
간단한 코드 대신에 데이터 바인딩 식을 사용하는 것입니다 그 일을 할 방법 렌더링 블록 ...
<asp:Label runat="server" ID="test" Text="<%# DateTime.Now.ToString() %>" ></asp:Label>
이제 텍스트 속성이 설정 될 때마다 Page.DataBind() 당신이
protected override void OnPreRender(EventArgs e)
{
if (!Page.IsPostBack)
{
DataBind();
}
base.OnPreRender(e);
}
여러분이 this.DataBind()가 아닌 test.DataBind()를 사용하도록 권장하십시오. 필요한 경우 모든 컨트롤이 DataBinding 이벤트를 통과 할 필요가 없습니다. – JJS
같은 아래로 레이블의 태그 내에 인라인 코드를 삽입 할 것입니다 코드 숨김 당신의, 그래서,라고
< asp:Label ID="Lbl" runat="server" Text="">
<%= DateTime.Now.ToString() %>
< /asp:Label>
그 경우, 나는 여전히 PreRenderComplete (아마도 내 대답에 덧붙인 주석을 추가했다.) 또는 심지어 렌더 (base를하기 전에 라벨을 붙이면 라벨이 붙을 지 확신 할 수 없다.)에 codebehind에 추가하는 것이 더 좋다. .OnRender) – eglasius
@ Chief7 - 질문에 MVC 태그를 추가하는 것이 좋습니다. – Kev