我使用foreach拼出的html,我需要在里面加入一个Checkbox1,用来选择每一个循环出来的数据。 然后还要有一个Checkbox2,用来控制全选或全部取消,
因为我是用foreach遍历数据库。然后通过response拼出来的html代码,所以肯定是不能用asp.net的多选控件了。只能用html本身的input代替。但是如何写这段代码呢。 当选中多选框的时候。 cs页面中的删除程序就可以获得input的值。然后删除。


foreach (DataRow row in dt.Rows)
        {
            Response.Write("<table width=250 height=20 border=0 cellspacing=0 cellpadding=0><tr><td width=100>< (row["game"])</td><td width=150><input type ="CheckBox"></td></tr></table>");
        }

解决方案 »

  1.   

    你这是用HTML拼出来的,控件也是拼出来的,CS代码是检查不到你的INPUT的控件饿,只能在前台写JS全选,然后通过AJAX删除,拼出来的控件CS代码中是不可能找到的
      

  2.   


    AJAX不太会。那有什么其他办法。能在删除的时候获取input选中的数据
      

  3.   

    输出:
      
     <input type ="CheckBox" name="myCheck"> <asp:Button .. OnClientClick="fnGetValue()">  /<input type="button" onclick="fnGetValue()">
     
    js
      function GetValue()
     {
        var eles=document.getElementsByName("myCheck");
        for(i=0;i<eles.length;i++)
         {
              //如果被选中
              if(eles[i].checked)
                  {
                           //弹出选中值
                         alert(eles[i].value);
                  }
         }
      }
      

  4.   

    你可以把ID赋给Checkbox1,做数据库操作,然后写一段javascript放在页面上,让checkbox2调用(全选还是取消)
      

  5.   

    放一个隐藏控件,用JS调用全选或者单选的时候,把ID值放在隐藏控件中.那样就可以调用了,不需要调用ajax,简单方便.
      

  6.   

    input 要指定name 和 value
    在后台用 string[] arr = Request.Form["控件name"].Split(',');
      

  7.   

    function GetValue() 

        var eles=document.getElementsByName("myCheck"); 
        for(i=0;i <eles.length;i++) 
        { 
              //如果被选中 
              if(eles[i].checked) 
                  { 
                          //弹出选中值 
                        alert(eles[i].value); 
                  } 
        } 
      }
      

  8.   

    1. // C# code 未实际测试
    // output
    System.Text.StringBuilder sb = new StringBuilder();
    sb.Append(@"<table width=250 height=20 border=0 cellspacing=0 cellpadding=0>");
    sb.Append(@"<tr><td width=100>Game</td><td width=150><input name="chkAllGame" type=""CheckBox"" value=""{1}"" onclick="<<JavascriptFunction>>">全选/反选</td></tr>");
    foreach (DataRow row in dt.Rows)
            {
    sb.AppendFormat(@"<tr><td width=100>{0}</td><td width=150><input name="chkGame" type=""CheckBox"" value=""{1}""></td></tr>",
    row["game"], row["<<KeyFieldName>>"]);            
            }
    sb.Append("</table>");
    Response.Write(sb.ToString());// deletestring gameIds = Request["chkGame"]; // 返回所有选项,以 ,(逗号)分开
    string deleteSql = "DELETE FROM tbl WHERE GameId IN(" + gameIds + ")"; // 注意这里需要 SQL Injection 处理// ADO.NET codes below
    // ...
      

  9.   

    2. // 客户端全选 javacript// C# 修改一下
    sb.Append(@" <tr> <td width=100>Game</td> <td width=150> <input name="chkAllGame" type=""CheckBox"" onclick="chkAllGame_Click(this)">全选/反选 </td> </tr>");function chkAllGame_Click(sender)
    {
    var chkGames = document.getElementsByName("chkGame");
    for(var i=0; i<chkGames.length; i++){
        chkGames[i].checked = sender.checked;
    }
    }