2011-09-19 29 views
0

我有一个checkboxlist项目文本作为一些语言(如:c,C++,java,c#sharp.net等)。我有一个空的列表框叫做期望的技能。人力资源招聘人员将选择一些语言(复选框列表项),然后单击一个名为愿望的按钮来复制选定的ckeckboxes,并且需要在列表框中填充。我想知道如何使用jQuery来实现这一点。这里是我的控件:如何将复选框列表项的值复制到使用jquery的列表框中

<asp:CheckBoxList ID="cbxlang" runat="server"> 
        <asp:ListItem Text="C" Value="C"></asp:ListItem> 
        <asp:ListItem Text="C++" Value="C++"></asp:ListItem> 
        <asp:ListItem Text="Java" Value="Java"></asp:ListItem> 
        <asp:ListItem Text="csharp" Value="csharp"></asp:ListItem> 
       </asp:CheckBoxList> 

这里的按钮:

<asp:Button ID="btnCheck" runat="server" Text="DesiredSkills" /> 

和列表框是这样

<asp:ListBox ID="lstDesired" runat="server"></asp:ListBox> 

我想填充选择复选框的项目,如我列表框项目。我在页面后面的代码中完成了这项工作,但是需要将页面发送回来,然后重新加载。请帮忙。我对jquery很新。

回答

0

试试这个,

<script type="text/javascript"> 
      $(document).ready(function() { 
       $("#button1").click(function() { 
        txt = $("#cbxlang").find("input"); 

        $("#lstDesired").children().remove(); 
        txt.each(function (a, b) { 
         if (b.checked) 
          $("#lstDesired").append("<option>" + b.value + "</option>"); 
        }); 

       }); 
      }); 
</script> 

标记

<asp:CheckBoxList ID="cbxlang" runat="server"> 
      <asp:ListItem Text="C" Value="C"></asp:ListItem> 
      <asp:ListItem Text="C++" Value="C++"></asp:ListItem> 
      <asp:ListItem Text="Java" Value="Java"></asp:ListItem> 
      <asp:ListItem Text="csharp" Value="csharp"></asp:ListItem> 
    </asp:CheckBoxList> 
    <asp:ListBox ID="lstDesired" runat="server"></asp:ListBox> 
    <input type="button" id="button1" value="Copy" /> 
+0

感谢您的回复。我已经应用了你的代码,但是在列表框中,我正在使用“on”作为项目文本。如果我选择3个复选框,它将填充3个“on”项目。列表框项目也不稳定,它显示的项目一秒钟,然后清空它。 – NayeemKhan

+0

@ NayeemKhan - 不要使用ASP.NET提交按钮。改为使用HTML按钮。 – adatapost

+0

我把onclick =返回false,所以现在就稳定了。但我仍然将文本框中的项目设置为“on”而不是复选框项目的值 – NayeemKhan

0

默认情况下,CheckBoxList控件不产生任何音符的价值属性。

与CheckBoxValueList自定义控件替换您的CheckBoxList:

using System; 
using System.ComponentModel; 
using System.IO; 
using System.Text; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

namespace YourSite.WebControls 
{ 
    /// <summary> 
    /// Adds the 'value' attribute to the <input /> element of each checkbox in the list 
    /// </summary> 
    [DefaultProperty("Text"), 
    ToolboxData("<{0}:CheckBoxValueList runat=server></{0}:CheckBoxValueList>")] 
    public class CheckBoxValueList : CheckBoxList 
    { 
     protected override void Render(HtmlTextWriter writer) 
     { 
      StringBuilder sb = new StringBuilder(); 
      TextWriter tw = new StringWriter(sb); 

      HtmlTextWriter originalStream = new HtmlTextWriter(tw); 
      base.Render(originalStream); 
      string renderedText = sb.ToString(); 

      int start = 0; 
      int labelStart = 0; 
      int end = renderedText.Length; 

      for (int i = 0; i < this.Items.Count; i++) 
      { 
       StringBuilder itemAttributeBuilder = new StringBuilder(); 

       end = renderedText.Length; 
       start = renderedText.IndexOf("<input", start, end - start); 
       labelStart = renderedText.IndexOf("<label", start, end - start); 

       this.Items[i].Attributes.Render(new HtmlTextWriter(new StringWriter(itemAttributeBuilder))); 

       renderedText = renderedText.Insert(labelStart + 7, itemAttributeBuilder.ToString() + " "); 
       renderedText = renderedText.Insert(start + 7, String.Format("{0} value=\"{1}\" ", itemAttributeBuilder.ToString(), this.Items[i].Value)); 
       start = renderedText.IndexOf("/>", start, renderedText.Length - start); 
      } 

      writer.Write(renderedText); 
     } 
    } 
} 

在这里看到更多的信息.​​..

http://surinder.computing-studio.com/post/2011/08/10/ASPNET-CheckBoxList-Control-With-Value-Attribute.aspx

然后可以使用AVD的jQuery来完成工作。