5

私はGridViewを持っています:

<asp:GridView ID="gvDownloads">
   <Columns>
      <asp:TemplateField HeaderText="Status" >
         <ItemTemplate>
             <%# Eval("Enabled")%>
         </ItemTemplate>
      </asp:TemplateField>
   </Columns>
<asp:GridView/>

Enabledプロパティはブール値です。ここで、プロパティのTrue/Falseに基づいて有効/無効を表示したいと思いEnabledます。したがって、私は使用します:

Sub gvDownloads_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs) Handles gvDownloads.RowDataBound

        If e.Row.RowType = DataControlRowType.DataRow Then

            If e.Row.Cells(3).Text = "True" Then
                e.Row.Cells(3).Text = "Enabled"
            Else
                e.Row.Cells(3).Text = "Disabled"
            End If

        End If

End Sub

e.Row.Cells(3).Textただし、イベントが起動されると空の文字列であるため、機能しません 。どうすればこの問題を解決できますか?ありがとう

4

2 に答える 2

4
If e.Row.Cells(3).Text <> Boolean.FalseString Then
       e.Row.Cells(3).Text = "Enabled"
Else
       e.Row.Cells(3).Text = "Disabled"
End If
于 2012-07-26T15:12:52.337 に答える
2

私と同じ問題。

e.Row.Cells[i].Text空でした。RowDataBound イベントにいるので、データはその時点でバインドされていないと思います。

しかし、私は使用しました:

     DataRowView drv = (DataRowView) e.Row.DataItem;
     if (drv["RNID"].ToString() == "")
     {
        e.Row.Visible = false;
     }

アプリケーションの"RNID"列名の 1 つです。これで私の問題は解決しました。

于 2012-08-09T08:37:36.517 に答える