当前位置:  开发笔记 > 编程语言 > 正文

ASP.NET - 丢失通过javascript填充的下拉列表选项

如何解决《ASP.NET-丢失通过javascript填充的下拉列表选项》经验,为你挑选了1个好方法。

我在页面上有两个ASP.NET下拉列表控件.第一个回调到服务器并获得一个数组,该数组返回给客户端并用于通过javascript填充第二个下拉列表.但是,如果我在第二个(并且新填充的)下拉列表中进行选择,然后进行回发,则第二个下拉列表的选择和内容将丢失.这是一个问题,因为我需要获取所选值并在回发后保留列表的内容.

我该如何解决?我认为这是在回发之前的某个时刻更新viewstate的问题?


我填充的控件是ASP.NET下拉列表.这是我用来填充它们的javascript.

使用的代码如下(为简洁起见,略微减少):

ASP.NET控件我正在填充:

回调获取逗号分隔值列表的代码:

public void RaiseCallbackEvent(string eventArgument)
    {
    return "1, 2, 3";
}

Javascript人口代码:

function ReceiveServerData(retValue)
{ 
    var statesArray = retValue.split(',');
    var statesList = document.getElementById('{0}');

    if (statesArray.length > 0 && statesList != null)
        {
                for (var j = 0; j < statesArray.length; j++)
            {
                    var newOption = document.createElement('OPTION');
                        statesList.options.add(newOption);
            newOption.value = statesArray[j].toString().trim();
                    newOption.innerText = statesArray[j];
                }
    }
}

Aaron Powell.. 6

您说明没有ViewState权限是正确的,这就是为什么在将数据发回服务器时不会填充值的原因.

我会强烈建议您迁移到使用级联下拉的ASP.NET AJAX控件工具包中(它既有.NET 2.0和.NET 3.5版本),因为它确实你是什么之后,它通过回传维护.

您的另一个选择是onchange在JavaScript填充的下拉列表中有一个事件,然后在其中填充隐藏字段,因为它将被发布回服务器,并且提交的值将保留在发布的数据中,喜欢:

$addHandler('change', $get('dynamicDDL'), function () { $get('hiddenField').value = this.options[this.selectedIndex].value; });

对于演示,我使用MS AJAX简写添加事件等.有关我使用的方法的更多信息可以在这里找到:http://msdn.microsoft.com/en-au/library/bb397536.aspx



1> Aaron Powell..:

您说明没有ViewState权限是正确的,这就是为什么在将数据发回服务器时不会填充值的原因.

我会强烈建议您迁移到使用级联下拉的ASP.NET AJAX控件工具包中(它既有.NET 2.0和.NET 3.5版本),因为它确实你是什么之后,它通过回传维护.

您的另一个选择是onchange在JavaScript填充的下拉列表中有一个事件,然后在其中填充隐藏字段,因为它将被发布回服务器,并且提交的值将保留在发布的数据中,喜欢:

$addHandler('change', $get('dynamicDDL'), function () { $get('hiddenField').value = this.options[this.selectedIndex].value; });

对于演示,我使用MS AJAX简写添加事件等.有关我使用的方法的更多信息可以在这里找到:http://msdn.microsoft.com/en-au/library/bb397536.aspx

推荐阅读
重庆制造漫画社
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有