问题描述
我用C#开发ASP.NET用javascript实现将一个ListBox的项添加到另一个ListBox.代码如下:1<%@PageLanguage="C#"AutoEventWireup="true"CodeBehind="WebForm4.aspx.cs"Inherits="test.WEB_APP.WebForm4"%>23<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">45<htmlxmlns="http://www.w3.org/1999/xhtml">6<headrunat="server">7<title>无标题页</title>8<scriptlanguage="javascript"type="text/javascript">9varObjFrom,ObjTo;10functionintial(objFrom,objTo)11{12ObjFrom=rtObject(objFrom);13ObjTo=rtObject(objTo);14}15//返回ListBox对象16functionrtObject(obj)17{18returndocument.form1.elements[obj];19}20functionAddItem(lbFrom,lbTo)21{22intial(lbFrom,lbTo);23varfromCount=ObjFrom.options.length;24if(fromCount==0)25{26alert("没有可供选择的数据");27return;28}29for(varh=0;h<fromCount;h++)30{31if(ObjFrom.options[h].selected)32{33varselectValue=ObjFrom.options[h].value;34varselectText=ObjFrom.options[h].text;35vartoCount=ObjTo.options.length;36varbool_=false;37for(k=0;k<toCount;k++)38{39if(ObjTo.options[k].value==selectValue)40{41bool_=true;42break;43}44}45if(bool_==false)46{47ObjTo.options[toCount]=newOption(selectValue,selectText);48DeletSingle(ObjFrom,h);49break;50}51}52}53}54functionDelItem(lbTo,lbFrom)55{56intial(lbTo,lbFrom);57varminSelected=0;58for(vari=ObjFrom.length-1;i>=0;i--)59{60if(ObjFrom.options[i].selected)61{62if(minSelected==0||i<minSelected)63{64minSelected=i;65AddItem(lbTo,lbFrom);66break;67}68}69}70vari=ObjFrom.length;71if(i>0)72{73minSelected=i-1;74ObjFrom.options[minSelected].selected=true;75}76}77functionAddItemAll(lbFrom,lbTo)78{79intial(lbFrom,lbTo);80varfromCount=ObjFrom.options.length;81if(fromCount==0)82return;83for(varh=0;h<fromCount;h++)84{85varcode=ObjFrom.options[h].value;86varvalue=ObjFrom.options[h].text;87vartoCount=ObjTo.options.length;88ObjTo.options[toCount]=newOption(value,code);89}90//删除所有项91for(varh=fromCount;h>=0;h--)92{93DeletSingle(ObjFrom,h);94}95}96//删除单个项97functionDeletSingle(obj,index)98{99obj.options[index]=null;100}101//将选择的值放入隐藏控件102functiongetValues()103{104varObjHid=document.getElementById('hidValue');105ObjHid.value="";106varm=ObjTo.options.length;107for(vari=0;i<m;i++)108{109ObjHid.value+=ObjTo.options[i].value+","110}111ObjHid.value=ObjHid.value.substring(0,ObjHid.value.lastIndexOf(","));112alert(ObjHid.value);113}114</script>115</head>116<bodyid="getValue">117<formid="form1"runat="server">118<div>119120<table>121<TR>122<TDstyle="WIDTH:79px;height:123px;">123<asp:ListBoxID="lbMoveFrom"runat="server"Height="120px"SelectionMode="Multiple"124Width="82px">125<asp:ListItem>a</asp:ListItem>126<asp:ListItem>b</asp:ListItem>127<asp:ListItem>c</asp:ListItem>128<asp:ListItem>d</asp:ListItem>129<asp:ListItem>e</asp:ListItem>130<asp:ListItem>f</asp:ListItem>131<asp:ListItem>g</asp:ListItem>132<asp:ListItem>h</asp:ListItem>133</asp:ListBox></TD>134<TDstyle="WIDTH:77px;height:123px;"align="center">135<P><INPUTonclick="JavaScript:AddItem('lbMoveFrom','lbMoveTo')"tabIndex="8"type="button"136value="添加>>"name="Input"></P>137<P><INPUTonclick="JavaScript:DelItem('lbMoveTo','lbMoveFrom')"tabIndex="9"type="button"138value="<<移出"name="Input2"></P>139<P><INPUTtype="button"onclick="JavaScript:AddItemAll('lbMoveFrom','lbMoveTo')"value="全部添加>>"></P>140<P><FONTface="宋体"></FONT> </P>141</TD>142<TDbgColor="#ffffff"style="height:123px">143<asp:ListBoxID="lbMoveTo"runat="server"Height="123px"SelectionMode="Multiple"144Width="74px"></asp:ListBox></TD>145</TR>146</table>147</div>148<inputid="hidValue"type="hidden"/>149<inputid="btn"type="button"onclick="getValues()"value="获取数据"/>150</form>151</body>152</html>153现在问题是:我怎么在后台CS代码中取到前台hidValue中的数据???急,谢谢诸位。
解决方案
解决方案二:
使用异步方式,将值传递到服务器端的Cs文件中。代码供参考:varxmlDom =newActiveXObject("Microsoft.XmlDom");xmlDom.load("/Admin/"+resourcePath+"/DataProcessService.asmx/getChildNodes?classId="+nodeId)
解决方案三:
up
解决方案四:
前台页面只有通过操作同时post到服务端时,服务端才能取到。js只是客户端脚本
解决方案五:
获取hidValue的值后,在前台将hidValue的值赋给服务器控件.将服务器控件隐藏.再到后台取服务器控件值
解决方案六:
如果是数据回传的话,直接在后台使用:Request.From["hidValue"]就可以了
解决方案七:
上面我写错了,应该是:Request.Form["hidValue"]
解决方案八:
<inputid="hidValue"type="hidden"/>加个runat="sever"<inputid="hidValue"type="hidden"runat="sever"/>
解决方案九:
<inputid="hidValue"type="hidden"/>给它加一个Name或者runat=server如果加nameRequest.Form["name"];如果加后者可以这样hidValue.Value;
解决方案十:
同意思楼上的,你把它作为一个服务器的控件,这样在后台就可以直接调用了.