我目前正在使用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. 如何在c中的鏈表中實現一個隊列?
- 4. F#中的列表如何實現?
- 5. C的散列表實現C
- 6. 在Haskell(GHC)中如何實現列表?
- 7. 在C++中的表實現
- 8. 如何在C中實現循環列表(環形緩衝區)?
- 9. 列表<T> .IndexOf()如何在C#中實現?
- 10. 如何在NCurses/PdCurses中實現滾動或列表框? (C)
- 11. 如何實現列表的組合
- 12. 如何在Dropbox中實現同步功能?
- 13. 在c中實現隊列#
- 14. 如何優先使用循環隊列在C++中實現隊列實現?
- 15. C中的鏈表實現C
- 16. c中的通用鏈接列表C++實現
- 17. 隊列實現C++
- 18. C#隊列實現#
- 19. 在C#中實現「表」
- 20. 在c#中實現代表#
- 21. vtable如何在C++和c#中實現?
- 22. 鏈接列表實現幫助 - Visual C++
- 23. 跳過列表實現C++ - XCode錯誤
- 24. 實現跳躍列表在C++
- 25. C++鏈接列表實現崩潰
- 26. Array-style鏈接列表實現C++
- 27. C++模板接口(列表實現)
- 28. 如何實現通用接口列表
- 29. 如何實現持久化Python列表?
- 30. 如何實現列表<T> :: iterator?
嗨,塞納......你能給你已經嘗試了一些具體的例子,或者至少東西呢? – 2012-04-11 06:55:51
事情是我沒有什麼,因爲我沒有一個想法如何實現它...我需要的想法請。目前我已經使用單選按鈕來實現它,用戶可以單擊單選按鈕並啓用保存框,但它應該是模塊化的,用戶應該能夠以不同的順序使用多種方法。 – senna 2012-04-11 06:58:15
這意味着:dropbox(包含所有方法)+按鈕和 - 按鈕 – senna 2012-04-11 06:59:05