none
checkboxlist选择的值怎么一下子显示呢 RRS feed

  • 问题

  • 我想让我的checkboxlist选中的时候,就在文本框中显示,(如果选中时,在去掉,那么文本框中就没有值)

    假如代码是这样的

    <form id="form1" runat="server">
        <asp:CheckBoxList ID="CheckBoxList1" runat="server" RepeatColumns="2"
            Width="200px">
            <asp:ListItem>张三</asp:ListItem>
            <asp:ListItem>李四</asp:ListItem>
            <asp:ListItem>王五</asp:ListItem>
            <asp:ListItem>陈六</asp:ListItem>
            <asp:ListItem>丁七</asp:ListItem>
            <asp:ListItem>赵八</asp:ListItem>
        </asp:CheckBoxList>
        <p>
            <asp:TextBox ID="TextBox1" runat="server" Width="90px"></asp:TextBox>
    &nbsp;<asp:TextBox ID="TextBox2" runat="server" Width="90px"></asp:TextBox>
    &nbsp;<asp:TextBox ID="TextBox3" runat="server" Width="90px"></asp:TextBox> 
            <asp:Button ID="Button1" runat="server" Height="33px" Text="随机选" Width="81px" />
        </p>
        </form>

    第一个问题:当我勾选任意一个名字的时候,就会随时在下面的文本框中显示(最多可选择三个,选择第四个时选不了)

    第二个问题:当我选择随机选的时候,出现随机的三个名字,这三个名字要在checkboxlist中选中。。。

     

    各位大侠帮帮忙了哎!做了一天了,都没做出来呢!

    • 已移动 孟宪会Moderator 2011年3月24日 5:46 (发件人:.NET Framework 一般性问题讨论区)
    2011年3月23日 7:14

答案

  • <%@ Page Language="C#" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <script runat="server">
    
     protected void Page_Load(object sender, EventArgs e)
     {
      for (int i = 0; i < CheckBoxList1.Items.Count; i++)
      {
       CheckBoxList1.Items[i].Attributes.Add("onclick", "SetValue(this)");
      }
     }
    </script>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
     <title></title>
     <script>
      var tx = ["<%=TextBox1.ClientID %>", "<%=TextBox2.ClientID %>", "<%=TextBox3.ClientID %>"];
      var checkBoxCount = 0;
      function SetValue(chk) {
    
       if (chk.checked) {
        if (checkBoxCount >= 3) {
         chk.checked = false;
         return;
        }
        checkBoxCount++;
        for (i = 0; i < tx.length; i++) {
         if (document.getElementById(tx[i]).value == "") {
          document.getElementById(tx[i]).value = chk.value;
          break;
         }
        }
       }
       else {
        checkBoxCount--;
        for (i = 0; i < tx.length; i++) {
         if (document.getElementById(tx[i]).value == chk.value) {
          document.getElementById(tx[i]).value = "";
          break;
         }
        }
       }
      }
    
      function RandomSetValue() {
       checkBoxCount = 0;
       for (i = 0; i < tx.length; i++) {
        document.getElementById(tx[i]).value = "";
       }
       var chx = document.getElementById("<%=CheckBoxList1.ClientID %>").getElementsByTagName("input");
       for (i = 0; i < chx.length; i++) {
        chx[i].checked = false;
       }
       var tmp = "|",count=0;
       while(true) {
        var num = Math.floor(Math.random() * chx.length);
        if (tmp.indexOf("|" + num + "|") == -1) {
         tmp += num + "|";
         count++;
         chx[num].click();
        }
        if (count >= 3) {
         break;
        }
       }
      }
      
     </script>
    </head>
    <body>
     <form id="form1" runat="server">
     <asp:CheckBoxList ID="CheckBoxList1" runat="server" RepeatColumns="2" Width="200px">
      <asp:ListItem>张三</asp:ListItem>
      <asp:ListItem>李四</asp:ListItem>
      <asp:ListItem>王五</asp:ListItem>
      <asp:ListItem>陈六</asp:ListItem>
      <asp:ListItem>丁七</asp:ListItem>
      <asp:ListItem>赵八</asp:ListItem>
     </asp:CheckBoxList>
     <p>
      <asp:TextBox ID="TextBox1" runat="server" Width="90px"></asp:TextBox>
      &nbsp;<asp:TextBox ID="TextBox2" runat="server" Width="90px"></asp:TextBox>
      &nbsp;<asp:TextBox ID="TextBox3" runat="server" Width="90px"></asp:TextBox>
      <asp:Button ID="Button1" runat="server" Height="33px" Text="随机选" Width="81px" OnClientClick=" RandomSetValue();return false;" />
     </p>
     </form>
    </body>
    </html>
    
    

    【孟子E章】
    2011年3月24日 5:44
    版主

全部回复

  • <%@ Page Language="C#" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <script runat="server">
    
     protected void Page_Load(object sender, EventArgs e)
     {
      for (int i = 0; i < CheckBoxList1.Items.Count; i++)
      {
       CheckBoxList1.Items[i].Attributes.Add("onclick", "SetValue(this)");
      }
     }
    </script>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
     <title></title>
     <script>
      var tx = ["<%=TextBox1.ClientID %>", "<%=TextBox2.ClientID %>", "<%=TextBox3.ClientID %>"];
      var checkBoxCount = 0;
      function SetValue(chk) {
    
       if (chk.checked) {
        if (checkBoxCount >= 3) {
         chk.checked = false;
         return;
        }
        checkBoxCount++;
        for (i = 0; i < tx.length; i++) {
         if (document.getElementById(tx[i]).value == "") {
          document.getElementById(tx[i]).value = chk.value;
          break;
         }
        }
       }
       else {
        checkBoxCount--;
        for (i = 0; i < tx.length; i++) {
         if (document.getElementById(tx[i]).value == chk.value) {
          document.getElementById(tx[i]).value = "";
          break;
         }
        }
       }
      }
    
      function RandomSetValue() {
       checkBoxCount = 0;
       for (i = 0; i < tx.length; i++) {
        document.getElementById(tx[i]).value = "";
       }
       var chx = document.getElementById("<%=CheckBoxList1.ClientID %>").getElementsByTagName("input");
       for (i = 0; i < chx.length; i++) {
        chx[i].checked = false;
       }
       var tmp = "|",count=0;
       while(true) {
        var num = Math.floor(Math.random() * chx.length);
        if (tmp.indexOf("|" + num + "|") == -1) {
         tmp += num + "|";
         count++;
         chx[num].click();
        }
        if (count >= 3) {
         break;
        }
       }
      }
      
     </script>
    </head>
    <body>
     <form id="form1" runat="server">
     <asp:CheckBoxList ID="CheckBoxList1" runat="server" RepeatColumns="2" Width="200px">
      <asp:ListItem>张三</asp:ListItem>
      <asp:ListItem>李四</asp:ListItem>
      <asp:ListItem>王五</asp:ListItem>
      <asp:ListItem>陈六</asp:ListItem>
      <asp:ListItem>丁七</asp:ListItem>
      <asp:ListItem>赵八</asp:ListItem>
     </asp:CheckBoxList>
     <p>
      <asp:TextBox ID="TextBox1" runat="server" Width="90px"></asp:TextBox>
      &nbsp;<asp:TextBox ID="TextBox2" runat="server" Width="90px"></asp:TextBox>
      &nbsp;<asp:TextBox ID="TextBox3" runat="server" Width="90px"></asp:TextBox>
      <asp:Button ID="Button1" runat="server" Height="33px" Text="随机选" Width="81px" OnClientClick=" RandomSetValue();return false;" />
     </p>
     </form>
    </body>
    </html>
    
    

    【孟子E章】
    2011年3月24日 5:44
    版主
  • 非常感谢,可是我看不懂js代码哎,而且运用的时候我又不会运用,显示的时候,全部显示on,

     

    可以给我在这两个事件里面写的代码吗

      protected void checkboxlist1_SelectedIndexChanged(object sender, EventArgs e)

     protected void btnRandom_Click(object sender, EventArgs e)

     

    不然,我真的看不懂哎,谢谢啊,谢谢

     

    谢谢!

    2011年3月24日 8:51
  • 没人会啊!
    2011年3月31日 5:10