2011-09-26 70 views
0

我分配变量到ASP通过JavaScript标签用一个简单的innerHTML调用问题时,然后通过C#会话对象传递

例如:

document.getElementById('labelName').innerHTML = parseFloat(var).toFixed(2);


它出现在标签罚款,我能够继续通过JavaScript处理它。

然后设置它,以便通过C#codebehind buttonClick事件将该变量放入会话对象中。

例如:

protected void btnConfirm_Click (object sender, EventArgs e) 
{ 
    Session["sessionName"] = labelName.Text; 
} 


的buttonConfirm_Click方法触发它Response.Redirects到另一个网页并且经由C#代码隐藏Page_Load方法会话对象填充ASP标签。

例如:

lblResult.Text =会话[ “SESSIONNAME”]的ToString();


在这样做时,标签是空的,没有错误或 '无效'。我试图通过尝试各种事情来缩小问题范围。当我在第一页后面的c#代码中明确指定文本并接收并将其分配给下一页上的标签时,它会正确显示。

例如:

Page 1: 
Session["sessionName"].ToString() = "Test"; 

Page 2: 
lblResult.Test = Session["sessionResult"].ToString(); 


我已经尝试过其他几件事情,如铸造在JavaScript和代码隐藏的变量,并检查以确保我有RUNAT =“服务器”中的每个应用标签。

无论如何,这里有什么我想念? asp.net无法检测到javascript对标签所做的更改吗?使用innerHTML或类似的东西可能会导致这样的事情发生时,是否存在一些不兼容问题?

在此先感谢!

回答

3

问题是span标记中的文本(即asp:Label将呈现的内容)不会发送到服务器,因此您无法读取更改服务器端。你需要使用一个输入元素(隐藏字段,文本框等,这取决于你的UI应该是什么样子)。

+0

这非常有意义!感谢您的澄清。 – zillaofthegods