验证FormView中CheckListBox是否被选种

思路:
1. 使用Javascript获取FormView中的CheckListBox的ID号。
 - 要点就是<%= FormView1.FindControl("CheckBoxList1").ClientID %>,因为CheckListBox存在在控件FormView之中,所以必须用上面的方式写才可以。
 - 一般只需要填写控件ID号,例如:document.getElementById('CheckBoxList1').childNodes[0]; 
 - 并且有时候有时控件的ID就和ClientID不一致,所以最好还是使用document.getElementById('<%= CheckBoxList1.ClientID %>').childNodes[0]; 
2. 使用Javassript验证是否被选种;
注意:
1. CheckListBox因为有分行的选择,就是一行放几个CheckBox,默认是不选的。那么以下代码即可:
<script language="JavaScript">
<!--
function readListControl()
{
 
var tableBody = document.getElementById('<%= FormView1.FindControl("CheckBoxList1").ClientID %>').childNodes[0]; 

 
for (var i=0;i<tableBody.childNodes.length; i++)
 
{
  
var currentTd = tableBody.childNodes[i].childNodes[0];
  
var listControl = currentTd.childNodes[0];

  
if ( listControl.checked == true )
   alert('#' 
+ i + ': is checked');
 }

}

// -->
</script>

2. 如果一行要同时放好几个CheckListBox,那么就必须改写代码,同时要考虑到可能一共是11个checkbox,那么一行4个,最后一行的最后一个是没的,但是代码中还是会去监测的,所以要确认是否为空,否则会出错。代码如下:
    <script language='javascript'>   
    
<!--
    
function MultiValidator()
    
{
        
var tableBody = document.getElementById('<%= FormView1.FindControl("CheckBoxList1").ClientID %>').childNodes[0]; 

        
for (var i=0;i<tableBody.childNodes.length; i++)
        
{
            
for(var j=0; j<tableBody.childNodes[i].childNodes.length; j++)
            
{
                
var currentTd = tableBody.childNodes[i].childNodes[j];
                
var listControl = currentTd.childNodes[0];
                
                
if ( listControl != null)
                
{
                    
if ( listControl.checked == true )
                    
{
                        alert('#' 
+ i + ',' + j + ': is checked');
                    }

                }

            }

        }


        
return false;
    }
 
    
// -->
    </script>
posted @ 2007-11-01 13:26  Fernando  阅读(767)  评论(2编辑  收藏  举报