ListView 컨트롤에 바인딩 된 SQLDataSource를 가지고 있지만 바인딩 된 레코드의 일부를 HTML TITLE 특성에 배치하려고합니다. 여기Codebehind에서 Eval을 사용하여 Page.Title을 설정하는 방법
Public Partial Class zShowAd
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Me.Page.Title = " Dynamically set in ASPX page"
'how to use Eval here instead of the above constant ??
End Sub
End Class
대응에서 .aspx 파일 :
<%@ Page Language="vb" AutoEventWireup="false" MasterPageFile="~/zSEO.master"
CodeBehind="zShowAd.aspx.vb" Inherits="Zipeee.zShowAd" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<div>
<asp:ListView ID="ShowAd" runat="server" DataSourceID="aPosting">
<LayoutTemplate>
<asp:PlaceHolder runat="server" ID="itemPlaceholder"></asp:PlaceHolder>
</LayoutTemplate>
<ItemTemplate>
<div>
<div id="wrapper">
<div id="header"></div>
<div id="main">
<div id="nav"> AdID: <%#Eval("AdID")%></div>
<div id="extras">Price: <%#Eval("Price")%></div>
<div id="content"> <%#Eval("AdDesc")%></div>
</div>
<div id="footer"></div>
</div>
</div>
</ItemTemplate>
</asp:ListView>
<asp:sqldatasource runat="server" id="aPosting"
ConnectionString="<%$ ConnectionStrings:ZIPeeeConnectionString2 %>"
SelectCommand="spGetAdByID" SelectCommandType="StoredProcedure">
<SelectParameters>
<asp:QueryStringParameter Name="AdId" QueryStringField="a" Type="String" />
</SelectParameters>
</asp:sqldatasource>
</div>
</asp:Content>
고맙습니다. 나는이 구문이 왜 좋은지에 대한 좋은 설명을 발견하지 못했습니다. %% SetPageTitle (Eval ("SomeProperty")) %> 대이 구문은 다음과 같습니다. <% SetPageTitle (Eval ("SomeProperty")) %> 고전적인 ASP 배경에서 나온 두 번째 형식은 괜찮은 것 같습니다. 명령문에 Eval이 포함되어 있기 때문에 # (바인딩 심볼이라고하는 것)이 필요합니까? –
@ 존 : 업데이트 된 답변의 차이점을 설명하려고했습니다. – M4N
정말 대단한 설명입니다! 고맙습니다. –