ich ziemlich sicher bin, dass dies nicht funktionieren wird, die korrekte Übersetzung lautet:
If(TypeOf Bind("sex") Is DBNull, Nothing, Bind("sex"))
Warum nicht im Codebehind lesbar machen?
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
bearbeiten: Sie haben kommentiert, dass es in einem FormView
ist. Ich werde Ihnen zeigen, wie es im DataBound
Ereignis zu tun ist.
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
Was sind Sie –
'If (TypeOf Bind ("sex") Ist DBNull, Nix, Bind ("sex")) zu achive versuchen' Aber ich glaube nicht, dass das funktioniert. –
Wenn meine Stored Procedure für "Sex" null zurückgibt, wird nichts ausgewählt, sonst wird "männlich"/"weiblich" basierend auf dem zurückgegebenen Wert von Bind ("Geschlecht") ausgewählt. – SZT