0

dbテーブルからselectオブジェクトを埋める簡単なコードがあります。値をチェックしてエントリを選択済みに設定したいのですが、db値をチェックすると、空の選択ボックスが表示されます。このコードは空のボックスを生成します:

response.write "<td><select name='FromDept'>"
Do While not rs.eof
   If rs("DeptID")  = 61 Then 
      response.write "<option value=" & rs("DeptID") & " selected>" & rs("DeptName")     & "</option>" 
   Else    
      response.write "<option value=" & rs("DeptID") & ">" & rs("DeptName") & "</option>"
   End If 
   rs.MoveNext     
Loop
rs.close
response.write "</select></td>"

ただし、このコードは次の値を持つ選択ボックスを生成します。

response.write "<td><select name='FromDept'>"
LpCnt = 0 
Do While not rs.eof

    If LpCnt = 9 Then 
       response.write "<option value=" & rs("DeptID") & " selected>" & rs("DeptName") & "</option>" 
    Else    
       response.write "<option value=" & rs("DeptID") & ">" & rs("DeptName") & "</option>"
    End If 
    rs.MoveNext     
    LpCnt = LpCnt + 1 
Loop
rs.close
response.write "</select></td>"  

助けてくれてありがとう!

4

2 に答える 2

1

値を一時変数に割り当てます。

response.write "<td><select name='FromDept'>"
Do While not rs.eof
   dept = rs("DeptID")
   If dept  = 61 Then 
      response.write "<option value=" & dept & " selected>" & rs("DeptName")     & "</option>" 
   ...
于 2012-06-01T14:58:45.230 に答える
0

空のドロップダウンは、そのステートメントでエラーが発生することを意味し、On Error Resume Nextどこかにある行が原因で無視される可能性があります。

On Error Resume Nextまず第一に、その行を取り除きます。

第二に、そのようなコードのエラーは型変換の問題を意味します。代わりにこのコードを試してください:

Dim curDeptID
Do While not rs.eof
   curDeptID = 0
   If Not IsNull(rs("DeptID")) Then
       curDeptID = CLng(CStr(rs("DeptID")))
   End If
   If curDeptID=61 Then 
      response.write "<option value=" & rs("DeptID") & " selected>" & rs("DeptName")     & "</option>" 
   Else    
      response.write "<option value=" & rs("DeptID") & ">" & rs("DeptName") & "</option>"
   End If 
   rs.MoveNext     
Loop
于 2012-06-03T07:16:04.340 に答える