在datagrid 和datalist中,加入一样服务器端的控件,如webcontrols 或者htmlcontrols(runat=Server), 所有的控件的名字都会变。
现在有一个ASP项目要升级到。NET,有一个checkbox列表,如果在datalist或者datagrid中的模板列中使用,checkbox生成后的名字全变了,原来在客户端用于检测 的javascript用不了(因为通过checkbox的名字反回一个checkbox对象数组已经不行了,每个checkbox有自己的名字),但是如果用htmlcontrols不runat=server,又不能绑定数据,难道真的要全部修改,放在服务器端实现检测?
(注,不能用checkboxlist,因为同一行中还有其它的如label,textbox等等控件)
请高手指点

解决方案 »

  1.   

    誰說HTML控件不能绑定数据
    模板列:<itemtemplate>
    <INPUT type="checkbox" value='<%#........%>' name="aaa" >
    </itemtemplate>取值:
    JAVASCRIPT:
    for(var i=0;i<document.all('aaa').length;i++)
    {
    document.all('aaa')[I].CHECKED
    }cs:request.parms["aaa"];//取得所有选中复选框的VALUE,若要分开请自定义VALUE格式
      

  2.   

    你可以这样
    function CheckNull(form)
      { var ck=0;
    for (var i=0;i<form.elements.length;i++)
        {
    var e = form.elements[i];
    if ( e.type=="checkbox"&&e.checked)
    ck=1; 
        }

    if (ck!=1 ) 
    {
    alert("你还没有选择要删除的信息!请至少选择一个吧。");
    return false;
    }
    else
    {
    return confirm('确定要删除所选择的记录吗 ?');
    }
      }