Re: [.NET] 符號標記用法#與%

看板Visual_Basic作者 (㊣康少校是死到哪裡去了)時間11年前 (2012/12/10 12:41), 編輯推噓2(2012)
留言14則, 2人參與, 最新討論串2/2 (看更多)
%= 相當於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" /> &nbsp; <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

12/10 13:55, , 1F
感謝M大給小弟觀念,受益良多
12/10 13:55, 1F

12/10 13:55, , 2F
小弟試著將<%# %>換成<%= %>的結果
12/10 13:55, 2F

12/10 13:56, , 3F
則是會將整個<%= XXX %>內容噴在前端,而已XXX變量內容
12/10 13:56, 3F

12/10 13:57, , 4F
                       非
12/10 13:57, 4F

12/10 13:58, , 5F
M大我搞笑了,我打錯字,再麻煩幫我修正 Q_Q
12/10 13:58, 5F

12/10 14:05, , 6F
你知道就好 |D
12/10 14:05, 6F

12/10 14:05, , 7F
你可以玩一下studio裡面的設計工具,插入一個gridview
12/10 14:05, 7F

12/10 14:07, , 8F
再加各種欄位,觀察他產出的code裡面 %# 的使用時機
12/10 14:07, 8F

12/10 14:09, , 9F
以前也看過templatefield裡面要結合兩個欄位再去查詢
12/10 14:09, 9F

12/10 14:10, , 10F
結果寫出 <%# customQuery(Eval("Id"), Eval("Name") %>
12/10 14:10, 10F

12/10 14:11, , 11F
customQuery()是一個自訂的function寫在後端
12/10 14:11, 11F

12/10 17:36, , 12F
原來除了可以接受DataSource的欄位名稱,也可以呼叫函式
12/10 17:36, 12F

12/11 12:44, , 13F
似乎 %# 特別的就是可以使用Eval()和Bind()
12/11 12:44, 13F

12/11 12:44, , 14F
其他行為就和 %= 是一樣的
12/11 12:44, 14F
文章代碼(AID): #1GnMVdug (Visual_Basic)
文章代碼(AID): #1GnMVdug (Visual_Basic)