关于使用javascript改变诸如ListBox控件的各个Item的值及顺序后怎么获取改变后的顺序

转载 2005年04月26日 17:17:00
方法:
 每当改变顺序或者改变值后都将当前ListBox的所有Item,通过for()循环将值保存在Hidden标签中,这个Hidden标签只能是html控件(记住:不能使用服务器控件TextBox,

 因为把visible设置为false后,页面上就不会有这个元素了,而javascript也会因为没有对应的元素而出错),最后回送到服务器时通过一个分解函数分解出正确的顺序和值

 。
 具体:
 脚本
 <script language="javascript">
 <!--
 function RememberNow()
    {
  //记录当前的选择项,将当前列表中的值及顺序保存在Hidden中
  //lstResult是服务器控件ListBox 
  //txtSelectedItems是<input type=hidden>
   var count;
          var str="";
          count=Form1.lstResult.options.length;
          for(var i=0;i<count;i++)
          {
    str+=Form1.lstResult.options[i].value + "," + Form1.lstResult.options[i].text + ";";
          }
          Form1.txtSelectedItems.value=str;//例如:1,冷侠;2,轻轻飞舞;
    }
 //-->
 </script>
 服务器端代码:
 private void Page_Load(object sender, System.EventArgs e)
 {
  try
  {
   //将修改后的顺序及值填充到目标ListBox
   //ParseIt函数用于分解出正确的值及顺序
   lstResult.DataSource=ParseIt(txtSelectedItems.Value);
   lstResult.DataValueField="ID";
   lstResult.DataTextField="Name";
   lstResult.DataBind();
  }
  catch(Exception ex)
  {
   Response.Write(ex.Message);
  }
 }
 private ICollection ParseIt(string str)
 {
  DataTable dtl=new DataTable();
  dtl.Columns.Add(new DataColumn("ID"));
  dtl.Columns.Add(new DataColumn("Name"));
  int i=0;
  int j;
  while((j=str.IndexOf(";",i))>=0)
  {
   string tmp;
   tmp=str.Substring(i,j-i);
   string parseNumber,parseName="";
   parseNumber=tmp.Substring(0,tmp.IndexOf(","));
   parseName=tmp.Substring(tmp.IndexOf(",")+1,tmp.Length-tmp.IndexOf(",")-1);
   try
   {
    DataRow dr=dtl.NewRow();
    dr["ID"]=Convert.ToInt32(parseNumber);
    dr["Name"]=parseName;
    dtl.Rows.Add(dr);
   }
   catch
   {}
   i=j+1;
  }
  dtl.AcceptChanges();
         return dtl.DefaultView;
 }


ListBox实现更改选中项目的顺序

窗体很简单 我主要是要做一下功能;简单的实现了下,没有做比较严谨的规划和按钮限制考虑, 有兴趣的朋友可以改进功能,大体上就下面的这样的个窗体代码如下: using System;using Syste...
  • denuvead
  • denuvead
  • 2008年05月07日 22:27
  • 1935

选中ListBoxItem中的TextBox后,如何改变ListBox的SelectedItem?

【问题提出】 【ItemView.xaml】: 一个UserControl x:Name="listBoxItemView" 完成ListBoxItem外观的定制,因为外观内容较多,就没有...
  • Trueman_onlyme
  • Trueman_onlyme
  • 2012年08月23日 13:34
  • 2864

ListView 实现 调整显示次序

ListView 次序 Cursor
  • u010743187
  • u010743187
  • 2016年01月02日 21:50
  • 947

listbox控件有个 很奇怪的一点,就是用addstring插入的顺序和显示的顺序不一样

右键Listbox Control控件 ,点击属性 sort选项设置为FALSE
  • Rbaggio92
  • Rbaggio92
  • 2017年03月16日 21:37
  • 372

关于VB的ListBox控件选定项的获取

 今天在做VB项目的时候,使用了ListBox控件来获取一些列表项,用了才发现没有ListView好用,ListView有Items(SelectItem)可以定位到当前的选中项,而ListBox没有...
  • wushudi
  • wushudi
  • 2009年11月07日 17:00
  • 3448

改变mfc控件焦点的方法的总结

在设计mfc界面的时候,由于开始托控件的顺序,那么在完成设计的时候就有个默认的顺序,如何改变这个顺序呢?这主要是由于控件的Tab顺序不相同,如果要改变这个默认顺序,可以选中要编辑的对话框,然后ctrl...
  • yangzhijun_cau
  • yangzhijun_cau
  • 2007年05月29日 14:26
  • 3074

在VC++中怎样改变控件间的TAB切换顺序?

在编辑界面按下ctrl+D键,就会出现所有控件的Tab键顺序,按照自己想要的顺序依次点击控件,就可以重新安排顺序。...
  • qinghezhen
  • qinghezhen
  • 2014年01月17日 20:07
  • 1084

jQuery动态改变元素顺序

该实现主要是利用after()方法和before()方法来实现元素的
  • u010520692
  • u010520692
  • 2014年05月09日 11:49
  • 846

拖动实现listview的item改变顺序(DragSortListView)

用开源库DragSortListView做了一个demo,是用于拖拽改变listview中的item顺序的。
  • hjqjl
  • hjqjl
  • 2015年10月27日 17:17
  • 1563

datagrid 列顺序调整

$.extend($.fn.datagrid.methods,{       columnMoving: function(jq){           return jq.each(functi...
  • lwqjn
  • lwqjn
  • 2015年04月02日 09:51
  • 533
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于使用javascript改变诸如ListBox控件的各个Item的值及顺序后怎么获取改变后的顺序
举报原因:
原因补充:

(最多只允许输入30个字)