Я абсолютно уверен, что это не будет работать, правильный перевод:
If(TypeOf Bind("sex") Is DBNull, Nothing, Bind("sex"))
Почему бы не сделать это понятным способом в коде?
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
Dim sex = getSexFromStoredProcedure()
If Not sex Is Nothing Then rd.SelectedValue = sex
End If
End Sub
Edit: Вы отметили, что это внутри FormView
. Я покажу вам, как это сделать в событии DataBound
.
Private Sub FormView1_DataBound(ByVal sender As Object, ByVal e As System.EventArgs) Handles FormView1.DataBound
Select Case FormView1.CurrentMode
Case FormViewMode.ReadOnly
' adjust the DataSource accordingly if its not a DataRow '
Dim row = DirectCast(FormView1.DataItem, DataRow)
Dim LblSex = DirectCast(FormView1.FindControl("LblSex"), Label)
Dim sex As String = row.Field(Of String)("Sex")
LblSex.Text = If(sex Is Nothing, "", sex)
Case FormViewMode.Edit
' adjust the DataSource accordingly if its not a DataRow '
Dim row As DataRow = DirectCast(FormView1.DataItem, DataRow)
' assuming your RadioButtonList is inside the EditItemTemplate '
Dim RblSex = DirectCast(FormView1.FindControl("RblSex"), RadioButtonList)
Dim sex As String = row.Field(Of String)("Sex")
If Not sex Is Nothing Then RblSex.SelectedValue = sex
Case FormViewMode.Insert
End Select
End Sub
что вы пытаетесь для того чтобы достигнуть –
'Если (TypeOf Bind ("секс") Является ли DBNull, Ничего, Bind ("секс"))' Но я не думаю, что это работает. –
Если моя хранимая процедура возвращает null для «sex», чем ничего не будет выбрано, иначе «male»/«female» будет выбран на основе возвращаемого значения Bind («sex») – SZT