C# 使用ASP.net C从html选择列表获取所有项目#
我有以下选择列表:C# 使用ASP.net C从html选择列表获取所有项目#,c#,javascript,html,asp.net,list,C#,Javascript,Html,Asp.net,List,我有以下选择列表: <select name="Context" id="Context" size="5"> <option>Context1</option> <option>Context2</option> <option>Context3</option> <option>Context4</option> <option>Context5</option>
<select name="Context" id="Context" size="5">
<option>Context1</option>
<option>Context2</option>
<option>Context3</option>
<option>Context4</option>
<option>Context5</option>
</select>
创建一个隐藏字段(runat=server)并将洗牌后的数据存储到隐藏字段中;您可以通过
string itemsOrderedChanged=Request.Form[]访问服务器端隐藏字段的内容代码>您可以获得所有类似的项目
var ddlArray= new Array();
var ddl = document.getElementById('Context');
for (i = 0; i < ddl.options.length; i++) {
ddlArray[i] = ddl .options[i].value;
}
var ddlArray=new Array();
var ddl=document.getElementById('Context');
对于(i=0;i
现在将此JavaScript数组传递给您的代码 一个答案是修改选择
使其成为列表框
,然后在服务器上以编程方式访问它:
<asp:ListBox runat="server" name="lstContext" id="lstContext" size="5">
<asp:ListItem>Context1</asp:ListItem>
<asp:ListItem>Context2</asp:ListItem>
<asp:ListItem>Context3</asp:ListItem>
<asp:ListItem>Context4</asp:ListItem>
<asp:ListItem>Context5</asp:ListItem>
</asp:ListBox>
您的javascript
应该仍然可以在列表框中工作,就像它在select
中一样,因此这应该不会受到影响。尝试像这样将javascript值传递给隐藏字段
var hidden=document.getElementById('hidValue');
var string strValues="";
for(var i=0i<ddlArray.Length;i++){
strValues+=ddlArray[i]+",";
}
hidden.value=strValues;
您可以只获取所选项目的值。它不会发布整个列表。我以前实现过listbox解决方案,但发现它非常慢,因为每次项目上移/下移时它都会回调服务器。我需要能够在客户端使用Javascript移动项目。我试图让Javascript移动列表框中的项目,但没有成功。谢谢。我尝试过用几种不同的方式将其存储为隐藏字段,但无法在ASP中访问它。你有关于如何做的更多信息吗?谢谢。将其传递给c#code behind就是问题所在。我似乎不能用HiddenField来做这件事。你有什么建议吗?谢谢。我使用以下命令将数据发送到代码beind:HTML/ASP:Javascript:document.getElementById(“ContextVals”).value=ddlArray;ASP.Net C#:Request.Form[“ContextVals”]
for (int i = 0; i < lstContext.Items.Count; i++)
{
string item = lstContext.Items[i].Value;
// Do something with it
}
var hidden=document.getElementById('hidValue');
var string strValues="";
for(var i=0i<ddlArray.Length;i++){
strValues+=ddlArray[i]+",";
}
hidden.value=strValues;
protected HtmlControls.HtmlInputHidden hidValue;
protected void Page_Load(object sender, System.EventArgs e)
{
dynamic hiddenValue = hidValue.Value;
string [] arr=hiddenValue.Split(",");
}