[英]move value from one listbox to other using javascript and then read value using c#
我有兩個列表框(列表框1和列表框2).i使用以下javscript代碼將值從一個列表框移動到另一個列表框。
<script language="javascript" type="text/javascript">
function fnMoveItems(lstbxFrom,lstbxTo)
{
var varFromBox = document.all(lstbxFrom);
var varToBox = document.all(lstbxTo);
if ((varFromBox != null) && (varToBox != null))
{
if(varFromBox.length < 1)
{
alert('There are no items in the source ListBox');
return false;
}
if(varFromBox.options.selectedIndex == -1) // when no Item is selected the index will be -1
{
alert('Please select an Item to move');
return false;
}
while ( varFromBox.options.selectedIndex >= 0 )
{
var newOption = new Option(); // Create a new instance of ListItem
newOption.text = varFromBox.options[varFromBox.options.selectedIndex].text;
newOption.value = varFromBox.options[varFromBox.options.selectedIndex].value;
varToBox.options[varToBox.length] = newOption; //Append the item in Target Listbox
varFromBox.remove(varFromBox.options.selectedIndex); //Remove the item from Source Listbox
}
}
return false;
}
</script>
此代碼將值從一個列表框移動到另一個列表框,但實際上當我嘗試讀取第二個列表框值時,其中一個值被復制,我無法讀取這些值。 當我檢查它顯示ListBox2.Items.Count
是0
正如Amar Palsapure在評論中指出的那樣,客戶端使用javascript的更改並不反映在服務器端而沒有您的一些黑客攻擊(將值添加到隱藏字段等等,請查看此處 ),因此您將無法看到更改服務器端。 我假設行ListBox2.Items.Count
是服務器端。
如果您執行ajax請求並在更新面板中執行服務器端,那么對您來說會更好,更容易。
確保在頁面加載時不要將列表框設置代碼放在if語句中,以確保它不是回發。
沒有HTTP請求的服務器端進程(C)無法從客戶端讀取 - 頁面重新加載(這可能不是您想要做的)。 您的javascript看起來不錯,但您可能需要使用AJAX技術,它允許您的客戶端代碼與您的服務器代碼通信,而無需在傳統的HTTP請求模型中重新加載頁面。
嘗試使用JQuery庫來幫助設置對服務器的請求。 http://api.jquery.com/jQuery.ajax/
正如TBohnen.jnr建議我建議使用更新面板,然后使用Asynchrounous Postback Trigger刷新更新面板。 您需要將列表框放在面板中,然后在移動內容時生成一個事件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.