【.net】Gridview小技巧
今天寫文章的因素來自於網路上的一個問題。
問題中寫到,第一個欄位想放圖片,但是圖片路徑是想按照資料欄位來放置。
其實,GridView雖然肥大,但也同時伴隨著他的強大。
寫法有很多種,今天介紹一種不用寫後端程式(.cs)的方法。
當然,用RowDataBind也可以做到。
今天介紹,利用TemplateField+Eval來達成。
關於TemplateField大概可以解釋成,可以自訂使用套件等來呈現資料。
至於Eval就請看MSDN:點此連結
就直接看程式啦!
1: <asp:TemplateField HeaderText="縣市">
2: <ItemTemplate>
3: <asp:Image ID="Img_SmallPhoto" ImageUrl='<%#Eval("CitySum","/image/{0}.jpg") %>' runat="server" AlternateText="Icon"></asp:Image>
4: <asp:Image ID="Image1" ImageUrl='<%# string.Format("/image/{0}.jpg",Eval("CitySum").ToString()) %>' runat="server" AlternateText="Icon2"></asp:Image>
5: <asp:HyperLink ID="HyperLink1" runat="server" Text='<%# Eval("CityName") %>' NavigateUrl='<%# string.Format("Default2.aspx?CID={0}",Eval("CitySum").ToString()) %>'></asp:HyperLink>
6: </ItemTemplate>
7: </asp:TemplateField>
其中,提供圖片和超連結來做類似的功能。
第一個:Image ID=Img_SmallPhoto這一個,此種方式適合一個欄位做關鍵值。
看到ImageUrl,我是利用MSDN上寫的,這樣可以把Url變成【/image/CieySum這個欄位的資料.jpg】。
第二個:Image ID=Image1,此種方式適合多個值當關鍵值。
看到ImageUrl部分,此種方式是利用string.Format的方式,第一欄放格式,之後就按照格式放變數。
最後的呈現也如同第一個方式。
第三個:HyperLink
我們常常在主要資料呈現後,會有觀看明細的功能,此時若你把明細頁寫成另外一頁,要透過某一ID當取資料的值就很適合這樣做。
範例中,最後按下連結的時候,會導向Default.aspx?CID=CitySum(這個欄位的值)這一頁。
大概就是這樣啦!
希望對大家有所幫助!!
這樣有種缺點,就是頁面和程式碼還是沒有完全抽離,有點像ASP勒!!
所以,還是看大家自己的習慣&喜好&公司是否有規定嚕。