VB.net技巧之五------在DataGrid中顯示圖片

來源:互聯網
上載者:User
datagrid|技巧|顯示

 在資料表userlist 中有一個欄位 foto 用來存放圖片的路徑(包括圖片檔案名稱),為了在 DataGrid 的 Cell 中顯示實際的圖片,我們可以定義一個模板列,然後給該列賦予欄位foto 的值,就可以在 DataGrid 的 Cell 中顯示圖片.
       首先請看如下代碼:
      WebForm2.aspx 檔案:

  <%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm2.aspx.vb" Inherits="house.WebForm2"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
  <title>WebForm2</title>
  <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
  <meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1">
  <meta name="vs_defaultClientScript" content="JavaScript">
  <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
 </HEAD>
 <body MS_POSITIONING="GridLayout">
  <form id="Form1" method="post" runat="server">
   <FONT face="宋體">
    <asp:DataGrid id="DataGrid1" style="Z-INDEX: 101; LEFT: 224px; POSITION: absolute; TOP: 16px"
     runat="server" Width="272px" Height="350px">
     <Columns>
      <asp:TemplateColumn>
       <ItemTemplate>
        <asp:Image id="Image1" runat="server" Width="96px" ImageUrl='<% #DataBinder.Eval(Container,"DataItem.foto") %>'>
        </asp:Image>
       </ItemTemplate>
      </asp:TemplateColumn>
     </Columns>
    </asp:DataGrid></FONT>
  </form>
 </body>
</HTML>

  WebForm2.aspx.vb 檔案

Public Class WebForm2
    Inherits System.Web.UI.Page

#Region " Web Form設計器產生的程式碼 "

    '該調用是 Web Form設計器所必需的。
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

    End Sub
    Protected WithEvents DataGrid1 As System.Web.UI.WebControls.DataGrid

    '注意: 以下預留位置聲明是 Web Form設計器所必需的。
    '不要刪除或移動它。
    Private designerPlaceholderDeclaration As System.Object

    Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
        'CODEGEN: 此方法調用是 Web Form設計器所必需的
        '不要使用代碼編輯器修改它。
        InitializeComponent()
    End Sub

#End Region

    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        '在此處放置初始化頁的使用者代碼
        Dim sql As String = " select  * from userlist "
        Dim dataset1 As New DataSet
        dataset1 = New DataSet("dataset1")

        Dim ConnectionString As String
        ConnectionString = "Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Registry Path=;Jet OLEDB:Database L" & _
        "ocking Mode=1;Data Source=""labrecord.mdb"";Jet OLEDB:Engine Type=5;Provider=""Mic" & _
        "rosoft.Jet.OLEDB.4.0"";Jet OLEDB:System database=;Jet OLEDB:SFP=False;persist sec" & _
        "urity info=False;Extended Properties=;Mode=Share Deny None;Jet OLEDB:Encrypt Dat" & _
        "abase=False;Jet OLEDB:Create System Database=False;Jet OLEDB:Don't Copy Locale o" & _
        "n Compact=False;Jet OLEDB:Compact Without Replica Repair=False;User ID=Admin;Jet" & _
        " OLEDB:Global Bulk Transactions=1"

        Dim oledbconnection1 As New OleDb.OleDbConnection(ConnectionString)
        Dim oledbDataAdapter1 As New OleDb.OleDbDataAdapter(sql, oledbconnection1)
        oledbDataAdapter1.Fill(dataset1, "userlist")
        oledbDataAdapter1 = Nothing 

        DataGrid1.DataSource = dataset1
        DataGrid1.DataBind()
        oledbconnection1.Close()
        oledbconnection1 = Nothing

    End Sub

End Class

綜述與總結:

      以前不知道如何在datagrid中如何顯示圖片的時候,在網上搜查相關技術資料的時候,很多.但是
往往寫得很多,很雜亂.甚至把人引入誤區.
     下面我用簡要的話來說明這個主題的關鍵: 首先要在一個頁面(如本例中的WebForm2.aspx )中添加一個datagrid1然後給datagrid1添加一個模板列.然後再往這個模板列中加入一個image控制項. 最關鍵的地方來了,那就是

<asp:TemplateColumn>
       <ItemTemplate>
        <asp:Image id="Image1" runat="server" Width="96px" ImageUrl='<% #DataBinder.Eval(Container,"DataItem.foto") %>'>
        </asp:Image>
       </ItemTemplate>
      </asp:TemplateColumn>
      中藍色的部分.即將圖片的路徑與 userlist 中的 foto欄位綁定. 至於  WebForm2.aspx.vb 檔案 的作用是將
資料庫中的表userlist 的資料與datagrid1綁定.     

 

 

 

        

 

 

 

 



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。