2016-05-26 3 views
0

Ich habe ListView Control in meiner Webanwendung. Wenn nun eine Spalte mit dem Wert "Akzeptiert" gefunden wird, dann sollte ein HyperLink-Steuerelement sichtbar sein oder andernfalls sichtbar falsch sein. Also habe ich die FindControl-Eigenschaft von Listview verwendet, aber es wird der Fehler "Object Reference nicht als Instanz eines Objekts gesetzt" angezeigt.Überprüfen Sie den Wert in der ListView Zeile und aktivieren Sie die Kontrolle in vb.net

Private Sub PMS_online_orders_PreRender(sender As Object, e As EventArgs) Handles Me.PreRender 
     Dim lblStatus As Label = CType(orderList.FindControl("status"), Label) 
     Dim lblDecline As HyperLink = CType(orderList.FindControl("decline"), HyperLink) 
     If lblStatus.Text = "Accepted" Then 
      lblDecline.Visible = True 
     End If 
    End Sub 

Listview

<ItemTemplate> 
        <tbody> 
         <tr> 
          <td><asp:Label ID="Label1" runat="server" Text='<%# Eval("OrderID") %>'></asp:Label></td> 
          <td><asp:Label ID="Label2" runat="server" Text='<%# Eval("name") %>'></asp:Label></td> 
          <td align="center"><asp:ImageButton CssClass="img-thumbnail" ID="ImageButton1" runat="server" 
              ImageUrl='<%# Eval("prescriptionLink")%>' Style="cursor: pointer" 
              OnClientClick="return LoadDiv(this.src);" /></td> 
          <td><asp:Label ID="Label4" runat="server" Text='<%# Eval("mobileNumber") %>'></asp:Label></td> 
          <td><asp:Label ID="Label6" runat="server" Text='<%# Eval("address1") + " " + Eval("address2") + " " + Eval("landmark") + " " + Eval("zip") + " " + Eval("city") %>'></asp:Label></td> 
          <td><asp:Label ID="Label3" runat="server" Text='<%# Eval("customerRemark") %>'></asp:Label></td> 
          <td> 
           <asp:Label ID="status" runat="server" Text='<%# Eval("status") %>'></asp:Label><br /> 
           <asp:HyperLink ID="decline" CssClass="decline-order-icon" NavigateUrl='<%# "decline-order.aspx?orderID=" & Eval("orderID") %>' Target="_blank" runat="server" Visible="false"></asp:HyperLink> 
          </td> 
         </tr> 
        </tbody> 
         </ItemTemplate> 

Antwort

1

Um die Kontrollen in Ihrem Listview Sie in jedem suchen müssen zu finden "itemtemplate."

Protected Sub Page_PreRender(sender As Object, e As EventArgs) Handles Me.PreRender 

    For Each lvi As ListViewItem In orderList.Items 
     Dim lblStatus As Label = CType(lvi.FindControl("status"), Label) 
     Dim lblDecline As HyperLink = CType(lvi.FindControl("decline"), HyperLink) 
     If lblStatus.Text = "Accepted" Then 
      Label1.Text = "yes" 
     End If 
    Next 
End Sub 

Oder Sie können es auf der ItemDataBound Ereignis tun:

Protected Sub orderList_ItemDataBound(sender As Object, e As ListViewItemEventArgs) Handles orderList.ItemDataBound 
    Dim lvi As ListViewItem = CType(e.Item, ListViewItem) 

    Dim lblStatus As Label = CType(lvi.FindControl("status"), Label) 
    Dim lblDecline As HyperLink = CType(lvi.FindControl("decline"), HyperLink) 
    If lblStatus.Text = "Accepted" Then 
     lblDecline.Visible = True 
    End If 
End Sub 
Verwandte Themen