数码资讯
Javascript动态控件服务器控件实例
最新的网页需要为用户选择一些下拉列表框的负荷,原来是要装在服务器端应该使用。最后,由于业务逻辑的考虑,一些DropDownList的功能需要在客户端实现的。现在的下拉列表的功能是不是整个服务器端的更好。 具体方法: 将DropDownList控件在页面添加一项分析HTML代码生成的,所以当用js做的
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
最新的网页需要为用户选择一些下拉列表框的负荷,原来是要装在服务器端应该使用。最后,由于业务逻辑的考虑,一些DropDownList的功能需要在客户端实现的。现在的下拉列表的功能是不是整个服务器端的更好。
具体方法:
将DropDownList控件在页面添加一项分析HTML代码生成的,所以当用js做的动态控制,它会很清楚。其测试代码如下所示。
一
看浏览器对HTML:以下是由DropDownList控件生成的HTML代码和普通的选择。
另外,还可以使用js动态填充、删除、选择和其他控件。
一
您可以删除1个,现在添加两个HTML按钮控件,用于添加选项,并删除所有选项:
添加和删除如下函数:
功能addoption(){
无功ddlobj = document.getelementbyid(dropdownlist1 / /);获取对象
如果(ddlobj。长度>0)
(deloption); / /删除所有,后加入
无功opttext =新的数组(创始人
无功optvalue =新的数组(0
无功ooption = null;
对于(var i = 0;i < opttext.length;i++){
ooption =新的选项(opttext {我},optvalue {我});
DdlObj.options.add(ooption);
}
}
功能deloption(){
无功ddlobj = document.getelementbyid(dropdownlist1 / /);获取对象
对于(var i = ddlobj.length-1;我> = 0;我--){
DdlObj.remove(我); / /火狐浏览器不支持ddlcurselectkey.options.remove(),即两个支持
}
}
在浏览器中,您可以轻松地创建一个选择下拉选项,它比服务器更高效,因为这些是客户机生成的。
最后的代码。但在这个时候,如果你想使用dropdownlist1.selectedvalue让用户选择的选项,然后你将得到它
一个错误。这是因为DropDownList的js动态添加的,所以它的项目是不是ViewState,它并不是保持,
也就是说,我们不能在服务器端处理它。为了解决这个问题,您可以使用两种方式:1,隐藏控件
用户的选择;2、要求。形式。(参见MSDN品尝Ajax)
1,我们添加一个隐藏的控件到页面保存在下拉列表中选择更改的信息,让用户选择一种选择。
在感兴趣的信息之后,我们可以在服务器端获取信息并进行处理,从而合理地实现客户和服装之间的分工。
添加onChange事件DropDownList控件,此时它的HTML代码如下所示:
onchange事件如下所示,主要保存用户选择的价值:
功能resvitem(){
无功objddl = document.getelementbyid(dropdownlist1 );
document.getelementbyid(hiddenfield1)。值= objddl。选项{ objddl SelectedIndex值。};
}
之后,我们使用一个ASP按钮控件来测试结果:
protected void button1_click(object sender,EventArgs e)
{
响应。写(hiddenfield1。值);
}
在这里,所有的工作都做完了,但是有一个问题,DropDownList的变化事件仅是拉低了用户。
该事件被触发。因此,当用户使用默认选项提交时,用户获得空值,
隐藏的初始化。对addoption事件添加一行代码如下:
功能addoption(){
无功ddlobj = document.getelementbyid(dropdownlist1 / /);获取对象
If (ddlObj.length>0)
(deloption); / /删除所有,后加入
无功opttext =新的数组(创始人
无功optvalue =新的数组(0
无功ooption = null;
对于(var i = 0;i < opttext.length;i++){
ooption =新的选项(opttext {我},optvalue {我});
DdlObj.options.add(ooption);
}
document.getelementbyid(hiddenfield1)。值= optvalue { 0 };
}
但是,以上红色部分在TT浏览器中没有成功添加,其他浏览还没有尝试过,下面是另一种写作方式:
getdeptlist()函数
{
无功ddlcitytype = document.getelementbyid(ddlcitytype );
无功ddlposition = document.getelementbyid(ddlposition );
var v = ddlcitytype。选项{ ddlcitytype SelectedIndex };
/ /警报(v.value);
无功deptlist = guest_userregister.getdeptlist(v.value)的价值;
无功deptlist =新的数组();
deptlist = deptlist.split(';');
对于(var i = 0;i < deptlist.length;i++)
{
如果(deptlist {我}!
{
VaR部= deptlist {我}分裂(',');
VaR选择= document.createelement(选项);
opt.innerhtml =部{ 1 };
opt.value =部{ 0 };
ddlposition.insertbefore(OPT,ddlposition。第一个孩子);
}
}
}
deloption()函数
{
无功ddluserschool = document.getelementbyid(ddluserschool );
Num = ddluserschool.length VaR;
同时(号码> 0)
{
对于(var j = 0;j <数字;j + +)
{
ddluserschool.remove(J);
}
Num = ddluserschool.length;
}
}
getschoollist()函数
{
deloption();
无功ddlprovince = document.getelementbyid(ddlprovince );
无功ddluserschool = document.getelementbyid(ddluserschool );
var v = ddlprovince。选项{ ddlprovince SelectedIndex };
无功deptlist = guest_userregister.getschoollist(v.value)的价值;
无功deptlist =新的数组();
deptlist = deptlist.split(';');
对于(var i = 0;i < deptlist.length;i++)
{
如果(deptlist {我}!
{
VaR部= deptlist {我}分裂(',');
VaR选择= document.createelement(选项);
opt.innerhtml =部{ 1 };
opt.value =部{ 0 };
ddluserschool.insertbefore(OPT,ddluserschool。第一个孩子);
}
}
}
具体方法:
将DropDownList控件在页面添加一项分析HTML代码生成的,所以当用js做的动态控制,它会很清楚。其测试代码如下所示。
一
看浏览器对HTML:以下是由DropDownList控件生成的HTML代码和普通的选择。
另外,还可以使用js动态填充、删除、选择和其他控件。
一
您可以删除1个,现在添加两个HTML按钮控件,用于添加选项,并删除所有选项:
添加和删除如下函数:
功能addoption(){
无功ddlobj = document.getelementbyid(dropdownlist1 / /);获取对象
如果(ddlobj。长度>0)
(deloption); / /删除所有,后加入
无功opttext =新的数组(创始人
无功optvalue =新的数组(0
无功ooption = null;
对于(var i = 0;i < opttext.length;i++){
ooption =新的选项(opttext {我},optvalue {我});
DdlObj.options.add(ooption);
}
}
功能deloption(){
无功ddlobj = document.getelementbyid(dropdownlist1 / /);获取对象
对于(var i = ddlobj.length-1;我> = 0;我--){
DdlObj.remove(我); / /火狐浏览器不支持ddlcurselectkey.options.remove(),即两个支持
}
}
在浏览器中,您可以轻松地创建一个选择下拉选项,它比服务器更高效,因为这些是客户机生成的。
最后的代码。但在这个时候,如果你想使用dropdownlist1.selectedvalue让用户选择的选项,然后你将得到它
一个错误。这是因为DropDownList的js动态添加的,所以它的项目是不是ViewState,它并不是保持,
也就是说,我们不能在服务器端处理它。为了解决这个问题,您可以使用两种方式:1,隐藏控件
用户的选择;2、要求。形式。(参见MSDN品尝Ajax)
1,我们添加一个隐藏的控件到页面保存在下拉列表中选择更改的信息,让用户选择一种选择。
在感兴趣的信息之后,我们可以在服务器端获取信息并进行处理,从而合理地实现客户和服装之间的分工。
添加onChange事件DropDownList控件,此时它的HTML代码如下所示:
onchange事件如下所示,主要保存用户选择的价值:
功能resvitem(){
无功objddl = document.getelementbyid(dropdownlist1 );
document.getelementbyid(hiddenfield1)。值= objddl。选项{ objddl SelectedIndex值。};
}
之后,我们使用一个ASP按钮控件来测试结果:
protected void button1_click(object sender,EventArgs e)
{
响应。写(hiddenfield1。值);
}
在这里,所有的工作都做完了,但是有一个问题,DropDownList的变化事件仅是拉低了用户。
该事件被触发。因此,当用户使用默认选项提交时,用户获得空值,
隐藏的初始化。对addoption事件添加一行代码如下:
功能addoption(){
无功ddlobj = document.getelementbyid(dropdownlist1 / /);获取对象
If (ddlObj.length>0)
(deloption); / /删除所有,后加入
无功opttext =新的数组(创始人
无功optvalue =新的数组(0
无功ooption = null;
对于(var i = 0;i < opttext.length;i++){
ooption =新的选项(opttext {我},optvalue {我});
DdlObj.options.add(ooption);
}
document.getelementbyid(hiddenfield1)。值= optvalue { 0 };
}
但是,以上红色部分在TT浏览器中没有成功添加,其他浏览还没有尝试过,下面是另一种写作方式:
getdeptlist()函数
{
无功ddlcitytype = document.getelementbyid(ddlcitytype );
无功ddlposition = document.getelementbyid(ddlposition );
var v = ddlcitytype。选项{ ddlcitytype SelectedIndex };
/ /警报(v.value);
无功deptlist = guest_userregister.getdeptlist(v.value)的价值;
无功deptlist =新的数组();
deptlist = deptlist.split(';');
对于(var i = 0;i < deptlist.length;i++)
{
如果(deptlist {我}!
{
VaR部= deptlist {我}分裂(',');
VaR选择= document.createelement(选项);
opt.innerhtml =部{ 1 };
opt.value =部{ 0 };
ddlposition.insertbefore(OPT,ddlposition。第一个孩子);
}
}
}
deloption()函数
{
无功ddluserschool = document.getelementbyid(ddluserschool );
Num = ddluserschool.length VaR;
同时(号码> 0)
{
对于(var j = 0;j <数字;j + +)
{
ddluserschool.remove(J);
}
Num = ddluserschool.length;
}
}
getschoollist()函数
{
deloption();
无功ddlprovince = document.getelementbyid(ddlprovince );
无功ddluserschool = document.getelementbyid(ddluserschool );
var v = ddlprovince。选项{ ddlprovince SelectedIndex };
无功deptlist = guest_userregister.getschoollist(v.value)的价值;
无功deptlist =新的数组();
deptlist = deptlist.split(';');
对于(var i = 0;i < deptlist.length;i++)
{
如果(deptlist {我}!
{
VaR部= deptlist {我}分裂(',');
VaR选择= document.createelement(选项);
opt.innerhtml =部{ 1 };
opt.value =部{ 0 };
ddluserschool.insertbefore(OPT,ddluserschool。第一个孩子);
}
}
}
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。