0
我很好奇:是否有可能使用JavaScript读取DropDownList控件的初始状态?ASP.NET:我可以读取ViewState以恢复客户端网站中的控件吗?
假设当页面在浏览器中加载时,下拉菜单中有十个选项。然后,使用JavaScript我删除所有的选项。
我可以阅读ASP.NET ViewState以获得最初的十个选项并恢复它们吗?
我很好奇:是否有可能使用JavaScript读取DropDownList控件的初始状态?ASP.NET:我可以读取ViewState以恢复客户端网站中的控件吗?
假设当页面在浏览器中加载时,下拉菜单中有十个选项。然后,使用JavaScript我删除所有的选项。
我可以阅读ASP.NET ViewState以获得最初的十个选项并恢复它们吗?
简短的回答是肯定的,你可以使用JavaScript来读取视图状态值,因为它们是存储在一个名为__viewstate
场,这是在浏览器中呈现为输入字段这样的:
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="..." />
问题你会碰到的是__viewstate
值被加密。
我的建议是使用一个隐藏字段来存储任何你想存储,然后访问这样的价值下拉或值:在你的
<input type="hidden" id="hiddenField" runat="server" value="" />
然后代码隐藏,因为输入具有runat="server"
您可以将值设置为任何你想,像这样:
hiddenField.Value= ViewState["dropdownvalues"].ToString();
最后,您可以使用JavaScript从隐藏字段获取值,就像这样:
<script type="text/javascript">
function test()
{
var name = document.getElementById('hiddenField').value;
alert(name)
}
</script>
我必须指定,在我的情况下,ViewState没有加密。我要求阅读ViewState,因为背后的代码有点旧,它已经绑定了DropDownList中的数据。我想在不修改服务器端的情况下添加客户端代码,但我开始认为这不是一个好主意,应该重构服务器和客户端。 – lsibaja