2016-07-14 8 views
1

現在、グリッドビューの特定の列に画像を表示または非表示する機能を持つコードビハインドのメソッドがありますデータ値によって異なります。これらの同じ条件で、アクションパネルにあるリンクボタンを非表示にするか、各行に表示することができます。今私は単に、同じ前述の方法で表示/非表示にしたいリンクボタンの可視性を設定しています。行ごとにアクションパネルのリンクボタンを非表示/表示する方法はありますか

もちろん、アクションパネルのすべての行インスタンスのリンクボタンの表示を設定します。たとえば、gridviewの最後の行にある場合、その関数はすべての行にあるように制定されますが、linkbuttonsの可視性がfalseになる条件が満たされていれば、可視性はすべての行に対してfalseです。

行ごとに個別に表示を設定する方法はありますか?

releventのASCX

 <div class="actionPanelWrapper" id="actionPanelItem"> 
      <div class="actionPanelOverlap"></div> 
      <div class="actionPanel"> 
       <ul> 
        <li> 
         <asp:LinkButton runat="server" ID="linkbuttonDetails" Text="Details" OnClick="actionPanel_Click" CommandName="details"></asp:LinkButton></li> 
        <li> 
         <asp:LinkButton runat="server" ID="linkbuttonViewApprovers" Text="View Approvers" OnClick="actionPanel_Click" CommandName="viewapprovers"></asp:LinkButton></li>      
        <li> 
         <asp:LinkButton runat="server" ID="linkbuttonActionEdit" Text="View Attachments" OnClick="actionPanel_Click" CommandName="attachments"></asp:LinkButton></li> 

        <li> 
         <asp:LinkButton runat="server" ID="linkbuttonComments" Text="View/Add Comments" OnClick="actionPanel_Click" CommandName="Comments"></asp:LinkButton></li> 
        <%--<li><a onclick="actionPanelEventHistoryShow(this);" href="#">View Request History</a></li>--%> 
        <li> <asp:LinkButton ID="lbEventHistory" runat="server" Text="View Request History" OnClick="actionPanel_Click" CommandName="history"></asp:LinkButton> </li> 
       </ul> 
      </div> 
     </div> 

の一部

Visible='<%# GetStatusImageVisibility(Eval("StatusName").ToString(), Eval("IsRejected").ToString())%>' 

分離コード方法

protected bool GetStatusImageVisibility(string Status, string IsRejected) 
    { 
     if (Status == "SAVED" && IsRejected != "1") 
     { 
      linkbuttonViewApprovers.Visible = false; 
      return false; 
     } 
     else 
     { 
      linkbuttonViewApprovers.Visible = true; 
      return true; 
     } 
    } 
を述べたように、私はピギーバックとのLinkBut​​tonに表示設定を追加する試みているのImageButtonメソッド呼び出し
+0

技術的には、画像を隠す/表示する1番目の方法でロジックを追加します。 linkbuttonを使用して列をテンプレート列に変換します。 GridViewRow.FindControlメソッドを使用してOnRowDataboundメソッドの条件に基づいて、リンクを表示または非表示にします。 – Kami

+0

私はfundionalityをrowdatabountに追加することを理解していますが、アクションパネルを別のものに変換する必要がありますか?これはアクションパネルで可能ですか? –

+0

必ずしもそうではありません。あなたのコードの一部を共有することはできますか? – Kami

答えて

0

行を表す追加のモデル(エンティティ)が必要です。各行に可視性フラグを追加すると、各行を個別に設定することができます。 BLおよびDALコンポーネントとの間でデータを渡す必要がある場合は、AutoMapper Nuget Packageを使用して異なるレイヤのエンティティ間をマッピングできます。

希望すると助かります!