我有一个更新的 div,但我的代码隐藏行为从未改变
I have an updated div, but my code-behind behave as it has never changed
我有一个 div 对象 (riddleIdHere),js 代码在 运行 期间将一个数字插入到此 div。我希望我的 C# 代码隐藏使用这个数字,但代码隐藏给了我一个空字符串,就像我从未在这个 div 中插入数字一样。
谁能帮帮我吗?
这是我的 div:
<div id='riddleIdHere' runat='server' style='display:none'></div>
Js:
document.getElementById("riddleIdHere").innerText = riddleid;
*riddleid 为数值型变量
我的代码隐藏应该使用我的 InnerText:
更新数据 table
sql = "UPDATE YHRiddles " +
"SET rateSum +='"+ b + "' " +
"WHERE id = '" + riddleIdHere.InnerText + "';";
Debug.WriteLine(riddleIdHere.InnerText);
Debug.WriteLine这里是为了看看为什么不行,打印的是空字符串
您使用 javascript 在页面上所做的更改不会自动发送到隐藏代码中。
要做到这一点,您必须创建另一个隐藏的输入控件(实际上是可以发送 post 后台代码信息的控件)并在其中写下您需要发送的信息 value
没有其他地方。该值是您可以发送的唯一值。
隐藏代码中的 InnerText
是提供一些有关如何呈现控件的信息 - 与最终页面没有交互性。
示例:Page.aspx
<head runat="server">
<title></title>
<script>
function OpenIt()
{
document.getElementById("<%=riddleIdHere.ClientID%>").innerText = "some text";
document.getElementById("<%=hfRiddleStatus.ClientID%>").value = "some text";
form.s
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<div id="riddleIdHere" runat="server" >Some Content</div>
<asp:HiddenField runat="server" id="hfRiddleStatus" Value="0" />
<asp:Button runat="server" Id="btnRunMe" OnClick="btnRunMe_Click" OnClientClick="OpenIt();" Text="RunMe" />
<asp:Literal runat="server" ID="txtDebugInfos" EnableViewState="false"></asp:Literal>
</div>
</form>
</body>
</html>
后面的代码:
protected void btnRunMe_Click(object sender, EventArgs e)
{
txtDebugInfos.Text = hfRiddleStatus.Value;
}
预期结果 - 单击后 hfRiddleStatus.Value
必须包含我们使用 javascript 放置的“一些文本”。
您可以创建文字:
<asp:Literal runat="server" ID="riddleIdHere" Text="" Visible="false"></asp:Literal>
然后是set asp literal text with js.
我有一个 div 对象 (riddleIdHere),js 代码在 运行 期间将一个数字插入到此 div。我希望我的 C# 代码隐藏使用这个数字,但代码隐藏给了我一个空字符串,就像我从未在这个 div 中插入数字一样。 谁能帮帮我吗?
这是我的 div:
<div id='riddleIdHere' runat='server' style='display:none'></div>
Js:
document.getElementById("riddleIdHere").innerText = riddleid;
*riddleid 为数值型变量
我的代码隐藏应该使用我的 InnerText:
sql = "UPDATE YHRiddles " +
"SET rateSum +='"+ b + "' " +
"WHERE id = '" + riddleIdHere.InnerText + "';";
Debug.WriteLine(riddleIdHere.InnerText);
Debug.WriteLine这里是为了看看为什么不行,打印的是空字符串
您使用 javascript 在页面上所做的更改不会自动发送到隐藏代码中。
要做到这一点,您必须创建另一个隐藏的输入控件(实际上是可以发送 post 后台代码信息的控件)并在其中写下您需要发送的信息 value
没有其他地方。该值是您可以发送的唯一值。
隐藏代码中的 InnerText
是提供一些有关如何呈现控件的信息 - 与最终页面没有交互性。
示例:Page.aspx
<head runat="server">
<title></title>
<script>
function OpenIt()
{
document.getElementById("<%=riddleIdHere.ClientID%>").innerText = "some text";
document.getElementById("<%=hfRiddleStatus.ClientID%>").value = "some text";
form.s
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<div id="riddleIdHere" runat="server" >Some Content</div>
<asp:HiddenField runat="server" id="hfRiddleStatus" Value="0" />
<asp:Button runat="server" Id="btnRunMe" OnClick="btnRunMe_Click" OnClientClick="OpenIt();" Text="RunMe" />
<asp:Literal runat="server" ID="txtDebugInfos" EnableViewState="false"></asp:Literal>
</div>
</form>
</body>
</html>
后面的代码:
protected void btnRunMe_Click(object sender, EventArgs e)
{
txtDebugInfos.Text = hfRiddleStatus.Value;
}
预期结果 - 单击后 hfRiddleStatus.Value
必须包含我们使用 javascript 放置的“一些文本”。
您可以创建文字:
<asp:Literal runat="server" ID="riddleIdHere" Text="" Visible="false"></asp:Literal>
然后是set asp literal text with js.