通过JavaScript赋值给Asp.net标签,然后通过c#会话对象传递时的问题
本文关键字:对象 会话 问题 赋值 JavaScript Asp net 然后 标签 通过 | 更新日期: 2023-09-27 18:09:54
我通过javascript与一个简单的innerHTML调用分配变量给asp标签
例子:
document.getElementById('labelName').innerHTML = parseFloat(var).toFixed(2);
它出现在标签fine中,我可以继续通过javascript操作它。
然后我设置它,以便该变量通过c#代码后面的buttonClick事件放入会话对象。
例子:
protected void btnConfirm_Click ( object sender, EventArgs e )
{
Session["sessionName"] = labelName.Text;
}
buttonConfirm_Click方法触发它的响应。重定向到另一个页面,并通过c#代码后面的page_load方法用session对象填充asp标签。
例子:
lblResult。Text = Session["sessionName"].ToString();
这样做时,标签为空,没有错误或'null'。我试图通过尝试各种事情来缩小这个问题。当我在第一页后面的c#代码中显式地分配文本和接收并将其分配给下一页的标签时,它会正确显示。
例子:
Page 1:
Session["sessionName"].ToString() = "Test";
Page 2:
lblResult.Test = Session["sessionResult"].ToString();
我尝试了其他一些事情,比如在javascript和代码隐藏中转换变量,并检查以确保我在每个适用的标签中都有runat="server"。
无论如何,这里有什么我错过了吗?asp.net是否无法检测javascript对标签所做的更改?是否有一些不兼容的问题,当使用innerHTML或类似的东西,可能会导致这样的事情发生?
提前感谢!
问题是,在一个span标签的文本(这是什么asp:Label将呈现)不发送到服务器的帖子,因此您无法读取您的更改服务器端。你需要使用一个输入元素(隐藏字段,文本框等,取决于你的ui应该是什么样子)