给listbox和 赋值问题

ddoopp99 2007-04-23 02:36:10
c#.net中(ms sql server2000,,vs.net2003),在做一个用户信息修改页面时,碰到问题:
页面上控件如下:1、两个dropdownlist下拉框,一个显示省份,一个显示城市;两个通过无刷新实现联动;
2、一个listbox,显示添加的多个城市名;
3、两个<INPUT id="xx" name="xx" runat="server"> ,当listbox有变动时,一个同步显示listbox中城市的id,一个同步显示listbox中城市名;多个id和城市名用,隔开;如:1001,1002,1003;北京,上海,深圳。
4、两个<INPUT class="buttoncss" type="button" >按钮,一个“添加”,一个“删除”;
5、一个“保存”按钮,将两个<INPUT id="xx" name="xx" runat="server"> 中的城市id和城市名分别保存到数据库的城市id和城市名两个字段中。在后台用C#代码实现。

当点击“添加”,显示城市的dropdownlist下拉框中的城市名添加到listbox中,同时,同步地将城市的id和城市名分别添加到两个<INPUT id="xx" name="xx" runat="server"> 中,可添多个,“删除”功能则反之;功能是通过JavaScript在前台实现。

问题是:当修改页面打开时,listbox,和两个INPUT id="xx" name="xx" runat="server"> 要显示已保存在数据库中的原记录,通过什么方法实现此功能呢?如在后台用C#提取数据库中数据再赋值给上面三个控件,在前台JavaScript却无法实再修改,望各位老师和前辈指教一下。

“添加”按钮的JavaScript代码如下:
function AddItem2(ControlName)
{

Control = null;
Control=eval("document.Form1.listNewEmp2");
var x=0;
var i=0;
var y=0;
DropDownList14=eval("document.Form1.DropDownList14");
listNewEmp2=eval("document.Form1.listNewEmp2");
var j=DropDownList14.length;

for(i=0;i<j;i++)
{
if(DropDownList14.options[i].selected==true)
{
//alert(Control.length);
if(Control.length==0)
{
Control.add(new Option(DropDownList14[i].text,DropDownList14.options[i].value));
listNewEmp2=eval("document.Form1.listNewEmp2");
continue;
}
else
{
for(x=0;x<listNewEmp2.length;x++)
{
if(DropDownList14.options[i].value==listNewEmp2.options[x].value)
{
y++;

alert("你所选择的项目已经添加!");
}

}
}
if(y==0)
{
Control.add(new Option(DropDownList14[i].text,DropDownList14.options[i].value));
listNewEmp2=eval("document.Form1.listNewEmp2");
}
}
}

listNewEmp2 = eval("document.Form1.listNewEmp2");

for(i=0;i<listNewEmp2.length;i++)
{
if(i==0)
{
document.Form1.txtEmpID2.value=listNewEmp2.options[i].value;
//document.Form1.txtEmpID3.value=listNewEmp2.options[i].text;
}
else
{
document.Form1.txtEmpID2.value+=","+listNewEmp2.options[i].value;
// document.Form1.txtEmpID3.value+=","+listNewEmp2.options[i].text;
}
}


}

能给的已有总分数不多,请各位原谅!
...全文
223 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ddoopp99 2007-04-24
  • 打赏
  • 举报
回复
.
ddoopp99 2007-04-23
  • 打赏
  • 举报
回复
在前台,怎样给listbox赋值呢,我在前台取了后台传过来的一个字符串,如:1001,1002,1003;然后把它分成数组,可赋值给listbox ,请问这样合理吗?给listbox赋值又该怎么赋,我总试不成功!
ddoopp99 2007-04-23
  • 打赏
  • 举报
回复
孟子大哥,请具体点,我还不太懂具体该怎么办,谢谢!
amandag 2007-04-23
  • 打赏
  • 举报
回复
现在的无刷新已经不再是用hidden控件实现的了, try AJAX(用XMLHTTPRequest就可以实现)
孟子E章 2007-04-23
  • 打赏
  • 举报
回复
s = "1001,1002,1003".split(",")
listbox = document.getElementById("<%=ListBox1.ClientID%>")//注意:clientID
for(i = 0;i<s.length;i++)
{
listbox.options[listbox.options.length] = new Option(s[i],s[i])
}
孟子E章 2007-04-23
  • 打赏
  • 举报
回复
当修改页面打开时,listbox,和两个INPUT id="xx" name="xx" runat="server"> 要显示已保存在数据库中的原记录,通过什么方法实现此功能呢?

既然你初始化的值存在数据库中,页面Load的时候在后台、就已经从数据库取到值赋值。

也可以在前台<body onlaod="initData()">
在initData()离读取数据库的值
ddoopp99 2007-04-23
  • 打赏
  • 举报
回复
自己up一下

13,190

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 分析与设计
社区管理员
  • 分析与设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧