【问题标题】:Retaining values in select multiple box在选择多个框中保留值
【发布时间】:2011-10-28 09:47:02
【问题描述】:

我在下面有一个 javascript 函数,可以从从数据库填充的多选框 A 移动到另一个多选框 B,如果发生回发,我在 B 中从 A 移过来的值丢失了。最初我认为是因为我为服务器端操作包含了一个“runat="server"”标签,但显然情况并非如此。我阅读了有关 Form.Request 的信息,但不知道如何去做。我只需要在多个选择框 B 中保留这些值。请多多指教。谢谢。

function move(sourceFrom, sourceTo) {
    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;
    }

    for (ii = 0; ii < arrTo.length; ii++) {
        var no = new Option();
        no.value = arrLU[arrTo[ii]];
        no.text = arrTo[ii];
        sourceTo[ii] = no;
    }

    (sourceTo).focus();

    if (sourceTo == (document.getElementById('<%= outletFromBox.ClientID%>'))) {
        (sourceFrom).focus();
    }
    if (sourceTo == (document.getElementById('<%= QualMemTypeFromBox.ClientID %>'))) {
        (sourceFrom).focus();
    }
    if (sourceTo == (document.getElementById('MemStatusFromBox'))) {
        (sourceFrom).focus();
    }
}  
<select multiple size="8" style="width: 135px" runat="server" onblur="selectAll(this, true, document.getElementById('<%#uilblDestinationQualOutlet.ClientID%>'))"
                                        id="outletToBox">
                                    </select>

【问题讨论】:

    标签: c# javascript asp.net html vb.net


    【解决方案1】:

    客户端对 ListBox 的更改不会在服务器端持久化,因此如果 PostBack 发生,所做的任何更改都将丢失;查看此链接以了解如何处理它:

    http://www.vijaykodali.com/Blog/post/2007/12/14/Add-Delete-Items-in-DropDownList2c-ListBox-using-Javascript.aspx

    如果您在使用该解决方案时遇到问题,请告诉我,并发布您的 aspx 页面代码...我们可以针对您的具体情况制定解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-17
      • 1970-01-01
      • 2014-04-22
      • 2013-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多