ASP.NET ListView Control - FindControl       | 
   
 
			  
			  
                ASP.NET ListView Control - FindControl ใน ListView ไม่สามารถทำการอ่าน Control ภายใน ListView โดยตรง เพราะ Control จะทำงานในรูปแบบของ Rows เพราะฉะนั้นถ้าเราต้องการอ่านค่า Control จะต้องใช้การ FindControl ของในแต่ล่ะ Rows ตามตัวอย่างผมจะทำการอ่าน FindControl Checkbox ทีได้ทำการคลิกเลือกใน ListView 
 
เพิ่มเติม 
การ FindControl เมื่อเจอ Control แล้วสามารถอ่านค่าหรือกำหนดค่าให้กับ Control ได้เช่นเดียวกัน 
 
Language Code :   VB.NET || C# 
 
Framework : 3,4 
 
 
ListViewFindControl.aspx 
 
<%@ Import Namespace="System.Data"%>
<%@ Import Namespace="System.Data.OleDb"%>
<%@ Page Language="VB" %>
<script runat="server">
	Dim objConn As OleDbConnection
	Dim objCmd As OleDbCommand
    Sub Page_Load(sender As Object, e As EventArgs)
		Dim strConnString As String
		strConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("database/mydatabase.mdb")&";"
		objConn = New OleDbConnection(strConnString)
		objConn.Open()
		IF NOT Page.IsPostBack() Then
			BindData()
		End IF
    End Sub
	Sub BindData()
		Dim strSQL As String
		strSQL = "SELECT * FROM customer"
		Dim dtReader As OleDbDataReader
		objCmd = New OleDbCommand(strSQL, objConn)
		dtReader = objCmd.ExecuteReader()
		
		'*** BindData to ListView ***'
		myListView.DataSource = dtReader
		myListView.DataBind()
		dtReader.Close()
		dtReader = Nothing
	End Sub
   Protected Sub myListView_ItemDataBound(ByVal sender As Object, ByVal e As ListViewItemEventArgs) Handles myListView.ItemDataBound
			
			Dim lvDataItem As ListViewDataItem = CType(e.Item, ListViewDataItem)
			'*** CustomerID ***'
			Dim lblCustomerID As Label = CType(e.Item.FindControl("lblCustomerID"),Label)
			IF Not IsNothing(lblCustomerID) Then
				lblCustomerID.Text = lvDataItem.DataItem("CustomerID")
			End IF
			'*** Name ***'
			Dim lblName As Label = CType(e.Item.FindControl("lblName"),Label)
			IF Not IsNothing(lblName) Then
				lblName.Text = lvDataItem.DataItem("CustomerID")
			End IF
			'*** Email ***'
			Dim lblEmail As Label = CType(e.Item.FindControl("lblEmail"),Label)
			IF Not IsNothing(lblEmail) Then
				lblEmail.Text = lvDataItem.DataItem("Email")
			End IF
			'*** CountryCode ***'
			Dim lblCountryCode As Label = CType(e.Item.FindControl("lblCountryCode"),Label)
			IF Not IsNothing(lblCountryCode) Then
				lblCountryCode.Text = lvDataItem.DataItem("CountryCode")
			End IF
			'*** Budget ***'
			Dim lblBudget As Label = CType(e.Item.FindControl("lblBudget"),Label)
			IF Not IsNothing(lblBudget) Then
				lblBudget.Text = lvDataItem.DataItem("Budget")
			End IF
			'*** Used ***'
			Dim lblUsed As Label = CType(e.Item.FindControl("lblUsed"),Label)
			IF Not IsNothing(lblUsed) Then
				lblUsed.Text = lvDataItem.DataItem("Used")
			End IF
    End Sub
	Sub Page_UnLoad()
		objConn.Close()
		objConn = Nothing
	End Sub
    Sub Button1_Click(sender As Object, e As EventArgs)
        Dim chkCusID As CheckBox
        Dim lblID As Label
        Dim i As Integer
        lblText.Text = ""
        For i = 0 To myListView.Items.Count - 1
            chkCusID = myListView.Items(i).FindControl("chkCustomerID")
            lblID = myListView.Items(i).FindControl("lblCustomerID")					
            IF chkCusID.Checked = True Then
                '*** Have lblID.Text ***'
                Me.lblText.Text = Me.lblText.Text & "<br>" & lblID.Text
            End IF
        Next
    End Sub
</script>
<html>
<head>
<title>ThaiCreate.Com ASP.NET - ListView</title>
</head>
<body>
	<form id="form1" runat="server">
        <asp:ListView ID="myListView" runat="server" DataKeyNames="CustomerID">
           
            <LayoutTemplate>
                <table>
                    <tr>
                        <td>
                            <table runat="server" border="1">
                                <tr>
                                    <th runat="server">
                                        Select</th>
                                    <th runat="server">
                                        CustomerID</th>
                                    <th runat="server">
                                        Name</th>
                                    <th runat="server">
                                        Email</th>
                                    <th runat="server">
                                        CountryCode</th>
                                    <th runat="server">
                                        Budget</th>
                                    <th runat="server">
                                        Used</th>
                                </tr>
                                <tr ID="itemPlaceholder" runat="server">
                                </tr>
                            </table>
                        </td>
                    </tr>
                </table>
            </LayoutTemplate>
                                 
            <ItemTemplate>
                <tr>
                    <td>
                        <asp:CheckBox id="chkCustomerID" runat="server"/>
                    </td>
                    <td>
                        <asp:Label ID="lblCustomerID" runat="server"/>
                    </td>
                    <td>
                        <asp:Label ID="lblName" runat="server"/>
                    </td>
                    <td>
                        <asp:Label ID="lblEmail" runat="server"/>
                    </td>
                    <td>
                        <asp:Label ID="lblCountryCode" runat="server" />
                    </td>
                    <td>
                        <asp:Label ID="lblBudget" runat="server" />
                    </td>
                    <td>
                        <asp:Label ID="lblUsed" runat="server" />
                    </td>
                </tr>
            </ItemTemplate>
        </asp:ListView>
	<br />
	<asp:Button id="Button1" onclick="Button1_Click" runat="server" Text="Submit"></asp:Button>
	<hr />
	<asp:Label id="lblText" runat="server"></asp:Label>
	</form>
</body>
</html> 
 
Screenshot  
 
               
  
              			
			  
								  
			  
  
                          
  | 
           
          
            
			  ช่วยกันสนับสนุนรักษาเว็บไซต์ความรู้แห่งนี้ไว้ด้วยการสนับสนุน Source Code 2.0 ของทีมงานไทยครีเอท 
              | 
           
          
 
       
		 
					
        
          
            
                
                   | 
                 
                
                  |   | 
                  By :  | 
                  ThaiCreate.Com Team (บทความเป็นลิขสิทธิ์ของเว็บไทยครีเอทห้ามนำเผยแพร่ ณ เว็บไซต์อื่น ๆ)  | 
                 
                
                  |   | 
                  Score Rating :  | 
                  
				     				   | 
                    | 
                 
                
                  |   | 
                  Create/Update Date :  | 
                  
                    2009-08-09 17:28:10            /
            2009-09-23 19:27:09 | 
                 
				
				
				                
                  |   | 
                  Download :  | 
                   
												
								 
										
									   | 
                 
				              | 
           
         
		
      
         
           
            
            
              
                | 
               
                   Sponsored Links / Related |  
              | 
         
        
                        | 
          
		  
		   | 
         
         
          |             
		  
	
      
     | 
     
 
 
		  
         | 
		
          
		   
		  
              
      
     |