2015-01-24 8 views
1

다른 열의 셀 값을 기반으로 내 이미지 버튼을 숨기려고합니다.행 셀 값을 기반으로 ImageButton을 숨기는 방법

내 셀 value.Text = "OPEN"그럼 그 행에 대한 특정 이미지 버튼을 보이지 않게하고 싶습니다.

내 코드가 imagebuttons을 모두 숨기고 난 그냥 싶어 셀 텍스트를 포함하는 사람이 여기에

내가 가지고있는 코드입니다 "열기"숨길 그러나

:

<asp:GridView ID="gvv" OnRowDataBound="gv1_RowDataBound" onrowcommand="gridupdate_RowCommand" OnPreRender="GridView1_PreRender" class="table table-striped table-bordered table-hover" runat="server"> 
    <Columns> 
    <asp:TemplateField HeaderStyle-Width ="115px" HeaderText="Action"> 
    <ItemTemplate> 
<asp:ImageButton ID="ImageButton3" runat="server" CommandName="Submit" ImageUrl="~/img/Sumbit.png" /> 
<asp:ImageButton ID="ImageButton2" runat="server" CommandName="ASN" ImageUrl="~/img/ASN-send.png" /> 
<asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="~/img/invoice.png" CommandName="View" /> 
&nbsp; 
</ItemTemplate> 
<HeaderStyle Width="115px"></HeaderStyle> 
     </asp:TemplateField> 
      </Columns> 
      </asp:GridView> 

백엔드 코드 :

Protected Sub gv1_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs) 
     If (e.Row.RowType = DataControlRowType.DataRow) Then 
      If (e.Row.Cells(2).Text.ToString = "OPEN") Then 

      Else 
       Dim imgBtn As ImageButton = CType(e.Row.FindControl("ImageButton3"), ImageButton) 
       imgBtn.Visible = False 

      End If 
     End If 

    End Sub 

답변

0

난 당신의 코드가 제대로 작동 생각하지만, 당신이 당신 If 문을 수정해야, 그것은해야한다 :

Protected Sub gv1_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs) 
     If (e.Row.RowType = DataControlRowType.DataRow) Then 
      If (e.Row.Cells(2).Text.ToString = "OPEN") Then 
       'Hide ImageButton3 
       Dim imgBtn As ImageButton = CType(e.Row.FindControl("ImageButton3"), ImageButton) 
       imgBtn.Visible = False 
      Else 
       'Do nothing 
      End If 
     End If 
    End Sub 

가 내 옆에 그것을 시도하고 당신이 뭔가 다른 일을하지 않는 경우는, 일하고있어 이것에 영향을 줄 수있는 GridView1_PreRender 메서드.

+0

감사합니다. 코드가 올바르게 작동했는지 확인했습니다. OPEN은 실제로 그것 앞에 공간을 가지고있어서 그것이 작동하지 않는 이유입니다. –

0

telerik rad grid를 사용하는 경우 다음 시나리오를 사용할 수 있습니다. 이것이 솔루션을 찾는 데 도움이되기를 바랍니다.

Protected Sub gv1_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs) 
     If e.Item.ItemType = GridItemType.AlternatingItem Or e.Item.ItemType = GridItemType.Item Then 
      Dim imgBtn As ImageButton = DirectCast(e.Item.FindControl("ImageButton3"), ImageButton) 
      If (e.Item.Cells(2).Text.ToString = "OPEN") Then 
       imgBtn.Visible = True 
      Else 
       imgBtn.Visible = False 
      End If 
     End If 
End Sub 
+0

telerik rad grid를 사용할 수 있습니까? –

관련 문제