HiddenField值不会被移除
HiddenField value doesn't get removed
本文关键字:HiddenField 更新时间:2023-09-26
我有一个javascript函数,在2选择多个框之间移动项目,当我将项目从源选择框移动到目标选择框时,我将值添加到我的HiddenField,以便我可以在代码后面访问,工作正常,但当我将项目从目标选择框移回源选择框时,我尝试使用:hidMemType。Value = ";清除隐藏区域。我认为这是有效的,但显然在回发事件中,该项目仍然卡在目的地框中。请指教,谢谢。
// Move items to and fro select box
function move(sourceFrom, sourceTo) {
var hidOutlet = document.getElementById('<%=hdnOutlet.ClientID%>');
var hidMemType = document.getElementById('<%=hdnMemType.ClientID%>');
var hidMemStatus = document.getElementById('<%=hdnMemStatus.ClientID%>');
var arrFrom = new Array();
var arrTo = new Array();
var arrLU = new Array();
var i;
for (i = 0; i < sourceTo.options.length; i++) {
arrLU[sourceTo.options[i].text] = sourceTo.options[i].value;
arrTo[i] = sourceTo.options[i].text;
}
var fLength = 0;
var tLength = arrTo.length;
for (i = 0; i < sourceFrom.options.length; i++) {
arrLU[sourceFrom.options[i].text] = sourceFrom.options[i].value;
if (sourceFrom.options[i].selected && sourceFrom.options[i].value != "") {
arrTo[tLength] = sourceFrom.options[i].text;
tLength++;
} else {
arrFrom[fLength] = sourceFrom.options[i].text;
fLength++;
}
}
sourceFrom.length = 0;
sourceTo.length = 0;
var ii;
for(ii = 0; ii < arrFrom.length; ii++)
{
var no = new Option();
no.value = arrLU[arrFrom[ii]];
no.text = arrFrom[ii];
sourceFrom[ii] = no; // SENDS VALUE FROM DESTINATION BOX BACK TO SOURCE BOX
hidMemType.value = ""; // TRY TO CLEAR MY HIDDEN FIELD HERE
}
for (ii = 0; ii < arrTo.length; ii++) {
var no = new Option();
no.value = arrLU[arrTo[ii]];
no.text = arrTo[ii];
//sourceTo.options.add(no);
sourceTo[ii] = no;
if (sourceTo == (document.getElementById('<%=outletToBox.ClientID%>'))) {
hidOutlet.value += no.value + "|";
}
if (sourceTo == (document.getElementById('<%=QualMemTypeToBox.ClientID%>'))) {
hidMemType.value += no.value + "|";
}
if (sourceTo == (document.getElementById('<%=MemStatusToBox.ClientID%>'))) {
hidMemStatus.value += no.value + "|";
}
}
(sourceTo).focus();
if (sourceTo == (document.getElementById('<%= outletFromBox.ClientID%>'))) {
(sourceFrom).focus();
}
if (sourceTo == (document.getElementById('<%= QualMemTypeFromBox.ClientID %>'))) {
(sourceFrom).focus();
}
if (sourceTo == (document.getElementById('<%= MemStatusFromBox.ClientID %>'))) {
(sourceFrom).focus();
}
}
代码:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
PopulateSelectBoxes(hdnMemType, QualMemTypeToBox, QualMemTypeFromBox)
end Sub
Protected Sub PopulateSelectBoxes(ByVal hdnSelectBox As HiddenField, ByVal selectBox As HtmlSelect, ByVal selectBox_Frm As HtmlSelect)
Dim hiddenMemType(selectBox.Items.Count - 1) As String
hiddenMemType = (Split(hdnSelectBox.Value, "|"))
Dim tempTable As String = ""
For Each item In hiddenMemType
If (tempTable.IndexOf(item) = -1) Then
If item <> "" Then
tempTable += item + "|"
End If
End If
Next
If tempTable <> "" Then
hiddenMemType = (Split(tempTable, "|"))
'We remove the items that exist in the ToBox
For Each item In hiddenMemType
selectBox_Frm.Items.Remove(item)
Next
selectBox.Items.Clear()
selectBox.DataSource = hiddenMemType
selectBox.DataBind()
End If
End Sub
我只是说说而已。您是否在下面的代码中尝试过:
myControl.value = Nothing
也许可以。
编辑:你也可以试着在那里放一个默认值,如果是默认值,你就不用对它做任何事。如果你用完了当前值就把它改回默认值
尝试禁用隐藏控件的ViewState -也许这就是保留值的原因。
在你的JS move
函数中,我想象hidMemType.value = "";
之后的for
循环再次设置hidMemType.value
。你检查过这不是事实吗?我会将for
循环包含在if
中,以确保它在不应该被击中时不会被击中。
我还会在function move()
的末尾添加一个alert
,以显示hidMemType.value
在出口上的确切位置。
相关文章:
- HiddenField从服务器更改的javascript值在客户端确认
- 无法将字符串数组分配给asp:HiddenField
- hiddenfield的值显示得非常缓慢
- 在服务器端的javascript之后读取hiddenfield的值
- 如何将这个 Javascript 函数返回放在 HiddenField c# 对象中
- 从 JavaScript 中设置 hiddenfield 值,但不在代码后面获取它
- asp.net hiddenfield.value 不是由 JavaScript 更新的
- Hiddenfield必须在每次点击时进行更改
- 使用 HiddenField 为 Javascript 赋予价值
- ASP.Net在UpdatePanel hiddenField上获取ScriptManager.RegisterClie
- 如何使用javascript或jquery在listview中设置hiddenfield的值
- 使用Javascript更改HiddenField值在C#代码绑定中没有更改
- 多编辑/保存网格(hiddenfield+javascript)
- 在javascript中检索hiddenfield值时出现问题
- 使用c#声明HiddenField'值&Javascript变量
- 在Javascript中设置值后,VB HiddenField会丢失值
- 使用jquery访问hiddenfield's值设置时出现错误
- 如何使用JQuery触发Asp:HiddenField onvaluechange事件
- 未捕获的类型错误:不能设置属性'innerHTML'为hiddenfield设置innerhtml时为n
- HiddenField值不会被移除