Asp.net asp dropdownlist未获得正确的值

Asp.net asp dropdownlist未获得正确的值,asp.net,Asp.net,我在页面加载时以这种方式填充下拉列表。(stringbuilder只是为了证明检索到了正确的列表项) 无论我从列表中选择了什么项目,dropdown selected事件始终检索索引0,这使我相信我填充DropdOnlist的方式有问题,并且所选值始终是与列表中第一个项目相关联的值,当dropdown出现在页面加载时,无论从下拉列表中选择了什么项目 Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load

我在页面加载时以这种方式填充下拉列表。(stringbuilder只是为了证明检索到了正确的列表项)

无论我从列表中选择了什么项目,dropdown selected事件始终检索索引0,这使我相信我填充DropdOnlist的方式有问题,并且所选值始终是与列表中第一个项目相关联的值,当dropdown出现在页面加载时,无论从下拉列表中选择了什么项目

 Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
    'Dim sb As New StringBuilder()
    Using ctx As New dbentities()
        Try
            Dim query = (From c In ctx.my_aspnet_users Select c.name, c.id).ToList()

            ddlSiteUsers.DataSource = query
            ddlSiteUsers.DataTextField = "name"
            ddlSiteUsers.DataValueField = "id"
            ddlSiteUsers.DataBind()
            'For Each item As ListItem In ddlSiteUsers.Items
            '    sb.Append(item)
            '    sb.Append(",")
            '    sb.Append(item.Value)
            '    sb.Append(";" & vbCrLf)
            'Next
            'MsgBox(sb.ToString())
        Catch ex As Exception
            MsgBox(ex.StackTrace.ToString())
        End Try
    End Using
End Sub
Page\u Load()
事件在页面最初加载时触发,也在您回发页面时触发

这意味着,在您的click/indexchanged事件触发之前,当您提交表单时,它正在运行
页面加载()中的代码

要停止此操作,您需要在代码周围放置一条
if
语句,以便它仅在页面最初加载时(即不发回时)填充下拉列表

e、 g

Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
  If Not Page.IsPostBack Then 
    'Dim sb As New StringBuilder()
    Using ctx As New dbentities()
      Try
        Dim query = (From c In ctx.my_aspnet_users Select c.name, c.id).ToList()

        ddlSiteUsers.DataSource = query
        ddlSiteUsers.DataTextField = "name"
        ddlSiteUsers.DataValueField = "id"
        ddlSiteUsers.DataBind()
        'For Each item As ListItem In ddlSiteUsers.Items
        '    sb.Append(item)
        '    sb.Append(",")
        '    sb.Append(item.Value)
        '    sb.Append(";" & vbCrLf)
        'Next
        'MsgBox(sb.ToString())
      Catch ex As Exception
        MsgBox(ex.StackTrace.ToString())
      End Try
    End Using
  End If
End Sub