0

以下のコードを使用して、ページロード時にテンプレート フィールド Imagebutton を非表示にしましたが、機能しません。

Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
            Dim ImageButton1 As ImageButton = DirectCast(GridView1.FindControl("ImageButton1"), ImageButton)
            If User.Identity.Name.Substring(InStr(User.Identity.Name, "\")).ToUpper = "User1" Then
                ImageButton1.Visible = False
            End If
        End Sub
4

1 に答える 1

0

あなたが持っていると仮定しますbinding grid before and it has rowsgridview 内で検索するのではなく、グリッドのある行で ImageButton を検索しますifToUpper を使用しているため、ToUpper の後の文字列を大文字ではない文字列と比較しているため、条件が真になることはないようChange User1 to USER1です。

変化する

 Dim ImageButton1 As ImageButton = DirectCast(GridView1.FindControl("ImageButton1"), ImageButton) 
 If User.Identity.Name.Substring(InStr(User.Identity.Name, "\")).ToUpper = "User1" Then
            ImageButton1.Visible = False
 End If

   Dim ImageButton1 As ImageButton = DirectCast(GridView1.Rows(0).FindControl("ImageButton1"), ImageButton)
 If User.Identity.Name.Substring(InStr(User.Identity.Name, "\")).ToUpper = "USER1" Then
       ImageButton1.Visible = False
 End If

ループによるグリッド全体の反復

For Each row As GridViewRow In GridView1.Rows
 Dim ImageButton1 As ImageButton = DirectCast(row.FindControl("ImageButton1"), ImageButton)
     If User.Identity.Name.Substring(InStr(User.Identity.Name, "\")).ToUpper = "USER1" Then
           ImageButton1.Visible = False
     End If
Next
于 2012-08-01T16:29:16.247 に答える