我有一个存储事件的数据库和一个带有日历对象的页面。渲染天数时,它会查看月份事件,如果有任何匹配,则会在当天渲染,它会创建一个链接按钮来表示日历中当天的事件并将其添加到该单元格。我在linkbutton中添加了一些javascript来将window.location更改为一个页面,以查看在查询字符串中传递EventID的事件详细信息(我尝试设置新创建的链接按钮的postbackurl,但它没有导致回发...没有运气)。我需要设置一个Session变量ie。会话(“EditMode”)="编辑"因此,新页面将知道获取现有的事件信息而不是准备创建新事件?任何建议?

有帮助吗?

解决方案

您的会话变量由服务器控制, JS运行客户端,因此无法直接修改变量。

您需要使用POST或GET进行服务器请求并隐藏 iframe或XMLHTTPRequest()调用从JS发送数据 服务器,然后让服务器端代码处理变量。

添加另一个查询字符串变量,该页面可用于触发现有vs。新的。

其他提示

添加另一个查询字符串变量,该页面可用于触发现有vs。新的。

如果你使用像Struts2这样的东西,你可以在你的jsp中有一个隐藏变量

<s:hidden id="EditModeId" value="%{#session.EditMode}"/> 

在javascript中只需访问此变量

alert(document.getElementById('EditModeId').value);

您肯定需要向目标页面添加变量。但我认为你正在做一个弹出场景,所以你应该能够创建一个javascript函数OpenWindow()并在用户点击链接时将其关闭。

<script>
function OpenWindow(eventId, editMode)
{
    var window = window.open("popup.aspx?eventId=" + eventId + "&editMode=" + editMode);
}
</script>

在服务器端,您需要构建对OpenWindow函数的调用。例如:

onclick="OpenWindow(eventId=" + row["eventId"].ToString() + "&editMode=" + editMode.ToString() + ");"

换句话说,准备服务器端的所有内容以设置您的javascript以将所有变量发布到新页面。希望这会有所帮助。

var page1 = document.getElementById("textbox").value; 
sessionStorage.setItem("page1content", page1);

在其他页面中将此值用作会话变量

document.getElementById("textbox2").value=sessionStorage.getItem("page1content");
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top