2016-05-26 5 views
0

WebアプリケーションにListViewコントロールがあります。今、値が "Accepted"である列が見つかると、HyperLinkコントロールが表示されるようにするか、それ以外の場合はfalseにする必要があります。だから私はListViewからFindControlプロパティを使用して、それは "オブジェクトのインスタンスとして設定されていないオブジェクト参照"エラーを表示しています。ListViewの行の値を確認し、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> 

答えて

1

"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 

それとも、ItemDataBoundイベントでそれを行うことができます。

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 
関連する問題