繁体中文
设为首页
加入收藏
当前位置:.Net技术首页 >> Asp.Net开发 >> 关于使用javascript改变诸如ListBox控件的各个Item的值及顺序后怎么获取改变后的顺序

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

2007-02-15 08:00:00  作者:  来源:互联网  浏览次数:0  文字大小:【】【】【
简介:方法: 每当改变顺序或者改变值后都将当前ListBox的所有Item,通过for()循环将值保存在Hidden标签中,这个Hidden标签只能是html控件(记住:不能使用服务器控件TextBox, 因为把visible设置为false后,页面上就不...

方法:

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

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

具体:

脚本

服务器端代码:

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;

}

责任编辑:admin
相关文章