我目前正在使用ASP.NET的C#项目。我想要实现一个Dropbox的列表。因此,用户从保管箱开始,可以选择一种方法,并且在保管箱旁边是一个+和 - 按钮,使用户可以添加更多保管箱。所以我想知道如何才能实现这是可以在ASP.NET中构建一个Dropbox列表?如何实现C#中的Dropbox列表
0
A
回答
2
您不需要任何服务器端代码,客户端脚本是您需要的理想解决方案。
有这样的HTML:
<div id="MainPlaceholder">
<div id="DropDownPlaceholder">
<select name="myDropDown">
<option value="1">First</option>
<option value="2">Second</option>
<option value="3">Third</option>
</select>
<button type="button" onclick="AddDropDown(this);">+</button>
<button type="button" onclick="RemoveDropDown(this);">-</button>
</div>
</div>
您需要以下纯JavaScript,使其工作:
<script type="text/javascript">
var added_counter = 0;
function AddDropDown(sender) {
var parent = sender.parentNode;
//make fresh clone:
var oClone = parent.cloneNode(true);
//append to main placeholder:
parent.parentNode.appendChild(oClone);
//store change in global variable:
added_counter++;
}
function RemoveDropDown(sender) {
//don't allow to remove when there is only one left
if (added_counter <= 0) {
alert("One drop down must exist");
return;
}
var parent = sender.parentNode;
//disable so value won't be passed when form submitted:
parent.getElementsByTagName("select")[0].disabled = true;
//hide:
parent.style.display = "none";
//store change in global variable:
added_counter--;
}
</script>
的代码有意见,但如果你需要任何进一步的解释,请随时提问。
编辑:当你需要阅读在服务器端代码中选择的值,更好的方法是改变每个克隆下降的名字了下来:
var totalAddedCounter = 0;
function AddDropDown(sender) {
var parent = sender.parentNode;
//make fresh clone:
var oClone = parent.cloneNode(true);
//assign unique name:
oClone.getElementsByTagName("select")[0].name += "_" + totalAddedCounter;
//append to main placeholder:
parent.parentNode.appendChild(oClone);
//store change in global variable:
added_counter++;
totalAddedCounter++;
}
现在棘手的问题是阅读那些值。除了纯dropboxlistID.Text
你将不得不遍历所有公布值寻找你所需要的:
foreach (string key in Request.Form.Keys)
{
if (key.StartsWith("dropboxlistID"))
{
string text = Request.Form[key];
//.....
}
相关问题
- 1. C++中的列表实现
- 2. C#列表实现
- 3. 在Eclipse中实现Dropbox Android
- 4. 使用C++中的链接列表实现队列实现
- 5. 如何在c中的链表中实现一个队列?
- 6. 链接列表在C中的实现
- 7. C++中的邻接列表实现
- 8. C中的链接列表实现
- 9. F#中的列表如何实现?
- 10. 如何在C#中实现序列化?
- 11. 实现一个列表C
- 12. C的散列表实现C
- 13. 如何实现列表
- 14. 如何在列表中实现分页?
- 15. 在Haskell(GHC)中如何实现列表?
- 16. 在C++中的表实现
- 17. 如何在C中实现循环列表(环形缓冲区)?
- 18. 列表<T> .IndexOf()如何在C#中实现?
- 19. 如何在NCurses/PdCurses中实现滚动或列表框? (C)
- 20. 列表实现中的ClassCastException?
- 21. 如何实现列表的组合
- 22. 在c中实现队列#
- 23. 如何优先使用循环队列在C++中实现队列实现?
- 24. 如何使用REST API在android应用程序中实现dropbox
- 25. 如何在Dropbox中实现同步功能?
- 26. C中的链表实现C
- 27. C#队列实现#
- 28. 队列实现C++
- 29. c中的通用链接列表C++实现
- 30. 在c#中实现代表#
嗨,塞纳......你能给你已经尝试了一些具体的例子,或者至少东西呢? – 2012-04-11 06:55:51
事情是我没有什么,因为我没有一个想法如何实现它...我需要的想法请。目前我已经使用单选按钮来实现它,用户可以单击单选按钮并启用保存框,但它应该是模块化的,用户应该能够以不同的顺序使用多种方法。 – senna 2012-04-11 06:58:15
这意味着:dropbox(包含所有方法)+按钮和 - 按钮 – senna 2012-04-11 06:59:05