作为JavaScript的新手,我需要从sessionStorage检索数据并在父输入刷新后填充我的父输入表单以更新一些子记录。我可以调用函数刷新页面和函数来独立地从sessionStorage获取数据,但是我无法组合这些进程,以便a)页面完全重新加载,然后b)从sessionStorage检索数据页面重新加载后。怎么能这样做?
我的页面刷新代码(尝试使用setTimeout方法组合函数)如下:
<script>
function refreshPage() {
location.reload();
setTimeout(GetSessionData, 4000);
}
</script>
我从sessionStorage获取数据的功能如下:
<script>
var inputcollection = document.getElementsByTagName("input");
function GetSessionData() {
for (var i = 0; i < inputcollection.length; i++) {
if(document.getElementById(inputcollection[i].name) != null || document.getElementById(inputcollection[i].name) != undefined) {
console.log(i + " " + inputcollection[i].name + "-" + inputcollection [i].value + "-");
if(document.getElementById(inputcollection[i].name).type != "file"){
document.getElementById(inputcollection[i].name).value = sessionStorage.getItem(inputcollection[i].name);
}}}
</script>
答案 0 :(得分:0)
你可以这样做:
[HttpGet, ActionName("GetByName")]
public TableName Get(string name)
{
DBEntities entities = new DBEntities();
return entities.TableName.FirstOrDefault(e => e.Name == name);
}
[HttpGet]
public TableName Get(int id)
{
DBEntities entities = new DBEntities();
return entities.TableName.FirstOrDefault(e => e.ID == id);
}
答案 1 :(得分:0)
当您在refreshPage()函数内执行函数时,它将执行上一条指令以刷新页面location.reload(),因此它将刷新页面,由于页面重新加载而停止函数执行并且以下代码挂起永远不会执行。
您应该在页面刷新/加载后对文档正文的load事件执行GetSessionData()函数执行,并将其从刷新中删除。
<html>
<head>
<!--Many things -->
<script>
function refreshPage() {
location.reload();
}
</script>
</head>
<body onload="GetSessionData()">
<!-- Your body code -->
</body>
</html>
如果你想用setTimeOut函数添加延迟,你应该放入另一个函数或GetSessionData里面
function GetSessionData() {
setTimeOut(function(){
for (var i = 0; i < inputcollection.length; i++) {
if(document.getElementById(inputcollection[i].name) != null ||
document.getElementById(inputcollection[i].name) != undefined) {
console.log(i + " " + inputcollection[i].name + "-" +
inputcollection [i].value + "-");
if(document.getElementById(inputcollection[i].name).type != "file"){
document.getElementById(inputcollection[i].name).value = sessionStorage.getItem(inputcollection[i].name);
}
}
}
},4000);
}