0

ページの読み込み時にこの方法でドロップダウンにデータを入力しています (stringbuilder は、正しいリスト項目が取得されたことを証明するためだけに存在します)。

ドロップダウン選択イベントは、リストから選択した項目に関係なく、常に 0 のインデックスを取得します。これにより、dropdwonlist の入力方法に何か問題があり、選択された値は常にその項目に関連付けられた値であると思われます。ドロップダウンからどの項目が選択されていても、ページの読み込み時にドロップダウンが表示されると、リストの最初に表示されます。

 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
4

1 に答える 1

0

このPage_Load()イベントは、ページが最初に読み込まれたときと、ページをポストバックしたときに発生します。

これは、クリック/インデックス変更イベントが発生する前にPage_Load()、フォームを送信するときにコードを再実行していることを意味します。

これを止めるにはif、コードの周りにステートメントを配置して、ページが最初にロードされたとき (つまり、ポストバックしていないとき) にのみドロップダウン リストにデータが入力されるようにする必要があります。

例えば

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
于 2012-11-21T14:06:32.263 に答える