作者MOONRAKER (㊣康少校是死到哪里去了)
看板Visual_Basic
标题Re: [.NET] 符号标记用法#与%
时间Mon Dec 10 12:41:07 2012
%= 相当於response.write(),而%#通常用於有连接datasource的control里面
以下是itemtemplate的例子
<asp:FormView ID="FormView1"
DataSourceID="SqlDataSource1"
DataKeyNames="ProductID"
RunAt="server">
<ItemTemplate>
<table>
<tr>
<td align="right"><b>Product ID:</b></td>
<td><%# Eval("ProductID") %></td>
</tr>
(中略)
<tr>
<td align="right"><b>Unit Price:</b></td>
<td><%# Eval("UnitPrice") %></td>
</tr>
</table>
</ItemTemplate>
</asp:FormView>
或在比如说在gridview的templatefield内用<%# eval("栏位") %>
取出datasource内的id栏位
<Columns>
<asp:BoundField DataField="FirstName" HeaderText="First Name"/>
<asp:BoundField DataField="LastName" HeaderText="Last Name"/>
<asp:TemplateField HeaderText="Birth Date">
<ItemTemplate>
<asp:Label ID="BirthDateLabel" Runat="Server"
Text='<%# Eval("BirthDate", "{0:d}") %>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
或在把某一个textbox的内容bind给datasource内栏位
配合update command就不用再自己写update SQL
<EditItemTemplate>
<table>
<tr>
<td align=right>
<b>Employee ID:</b>
</td>
<td>
<%# Eval("EmployeeID") %>
</td>
</tr>
<tr>
<td align=right>
<b>First Name:</b>
</td>
<td>
<asp:TextBox ID="EditNameTextBox" RunAt="Server"
Text='<%# Bind("Name") %>' />
</td>
</tr>
<tr>
<td colspan="2">
<asp:LinkButton ID="UpdateButton" RunAt="server"
Text="Update" CommandName="Update" />
<asp:LinkButton ID="CancelUpdateButton" RunAt="server"
Text="Cancel" CommandName="Cancel" />
</td>
</tr>
</table>
</EditItemTemplate>
你认为他们一样,那你可以试试看<%= Eval("栏位") %>看看後果如何
%# 没用到bind()或eval()不要乱用,%= 也尽量少用
asp.net设计那麽多control给你,可以在code-behind做完的事不要用老asp的老方法
See also:
http://msdn.microsoft.com/en-us/library/ms178366.aspx
--
从前有个马铃薯王国 有个高贵伟大的国王
有的人尊敬他 有的人畏惧他 但有个人敢看不起他不只是一条龙
嘿呵 快出动 去征服 去摆平 嘿呵 快出征 去征服那条龙
嘿呵 快出动
(宰了它!轰了它!)嘿呵 快出征 去征服那条龙
:■ Potatoes and Dragons (C)Alphanim France 2004-05 :.
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.163.12.174
1F:推 forkome:感谢M大给小弟观念,受益良多 12/10 13:55
2F:→ forkome:小弟试着将<%# %>换成<%= %>的结果 12/10 13:55
3F:→ forkome:则是会将整个<%= XXX %>内容喷在前端,而已XXX变量内容 12/10 13:56
4F:→ forkome: 非 12/10 13:57
5F:→ forkome:M大我搞笑了,我打错字,再麻烦帮我修正 Q_Q 12/10 13:58
6F:→ MOONRAKER:你知道就好 |D 12/10 14:05
7F:→ MOONRAKER:你可以玩一下studio里面的设计工具,插入一个gridview 12/10 14:05
8F:→ MOONRAKER:再加各种栏位,观察他产出的code里面 %# 的使用时机 12/10 14:07
9F:→ MOONRAKER:以前也看过templatefield里面要结合两个栏位再去查询 12/10 14:09
10F:→ MOONRAKER:结果写出 <%# customQuery(Eval("Id"), Eval("Name") %> 12/10 14:10
11F:→ MOONRAKER:customQuery()是一个自订的function写在後端 12/10 14:11
12F:推 forkome:原来除了可以接受DataSource的栏位名称,也可以呼叫函式 12/10 17:36
13F:→ MOONRAKER:似乎 %# 特别的就是可以使用Eval()和Bind() 12/11 12:44
14F:→ MOONRAKER:其他行为就和 %= 是一样的 12/11 12:44