2011-05-26 97 views
1

我在.asp頁面上動態創建複選框時遇到了一些麻煩。我使用的是電池的下面的代碼indside在桌子上(注意 - rsMaint是一個記錄):經典asp頁面上的動態複選框

<% 
    if not rsMaint.EOF then  
    rsMaint.moveFirst 

    index = 1 
%> 
    <% 
     do while not rsMaint.EOF     
    %> 
    <% 
     Response.Write(CreateLabel(rsMaint.fields.getValue("name"),0))   
     Response.Write("<INPUT type=""checkbox"" id=cb" & index & " value=" & rsMaint.fields.getValue("template_id") & ">") 

      rsMaint.moveNext() 
      index = index + 1 
      loop 
    %> 

這工作找到創建我的複選框,我可以查看源代碼,看看他們有ID的CB1, CB2,CB3等我拿到如果我嘗試做一個對象不存在錯誤:

if cb1.getChecked() = true Then 
... 
end if 
+0

什麼是'cb1.getChecked()'應該是什麼意思?你在哪裏打電話? – Tomalak 2011-05-26 20:35:33

+0

另外,你能告訴我們'rsMaint'是什麼(因爲你使用它的方式,它不是ADO)? – Tomalak 2011-05-26 20:41:10

+0

getChecked()是我見過的用於其他頁面的方法,用於檢查複選框是否被選中,儘管我現在看到這可能是屬於interdev設計時間複選框的方法。另外rsMaint是一個ADO記錄集,它從select語句中獲取值 – Curtis 2011-05-26 20:56:26

回答

3
<% 
    rsMaint.moveFirst 
    index = 1 

    While Not rsMaint.EOF     
    val = rsMaint.fields.getValue("template_id") 

    Response.Write(CreateLabel(rsMaint.fields.getValue("name"),0))   
    Response.Write("<INPUT type=""checkbox"" id="""cb" & index & """" & _ 
        " name="""checkbox_" & index & """" & _ 
        " value=""" & Server.HTMLEncode(val) & """>") 

    rsMaint.moveNext() 
    index = index + 1 
    Wend 
%> 

後來,當用戶回發的形式,你可以做

<% 
    If Request("checkbox_1") > "" Then 
    ''# ... 
    End If 
%> 

請注意,您必須先從不輸出數據值,而不使用HTML編碼。