我再次发布这个问题,也许这次更准确的描述。
问题是,我使用jQuery设置Label的文本值,它在浏览器上工作正常,但是当我想将它保存到字符串时,它不会保存它。这里是 前端Html代码。
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script src="jquery-1.9.1.min.js"></script>
<script type="text/javascript">
$(window).load(function () {
var myNewName = "Ronaldo";
$('#<%= Label1.ClientID %>').text(myNewName);
});
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</form>
</body>
</html>
这是后端C#代码页面加载
using System;
using System.Web.UI;
public partial class _Default : Page
{
protected void Page_Load(object sender, EventArgs e)
{
string mynameCheck = Label1.Text;
if (mynameCheck=="Ronaldo")
{
Response.Write("Yes Name is Fine");
}
else
{
Response.Write("Name's not Fine");
}
}
}
显示的结果是
Name's not Fine
Ronaldo
似乎字符串仍然是空的。有任何渲染问题吗?
答案 0 :(得分:0)
标签不是输入类型,因此您无法通过服务器端的jquery获取更改的值。您可以使用隐藏字段来实现此目的。
答案 1 :(得分:0)
这应该这样做:
<script type="text/javascript">
$(window).load(function () {
if($('#<%= Txt1.ClientID %>').val() != "Ronaldo"){
var myNewName = "Ronaldo";
$('#<%= Txt1.ClientID %>').val(myNewName);
$('#<%= Label1.ClientID %>').text(myNewName);
$('#<%= Btn1.ClientID %>').click();
}
});
</script>
<form id="form1" runat="server">
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
<asp:TextBox ID="Txt1" runat="server" style="display:none"></asp:Label>
<asp:Button ID="Btn1" runat="server" style="display:none" Click="Btn1_Click"></asp:Label>
</form>
protected void Page_Load(object sender, EventArgs e)
{
if(IsPostBack)
{
Label1.Text=Txt1.Text;
string mynameCheck = Label1.Text;
if (mynameCheck=="Ronaldo")
{
Response.Write("Yes Name is Fine");
}
else
{
Response.Write("Name's not Fine");
}
}
}
protected void Btn1_Click(object sender, EventArgs e)
{ }
希望有所帮助:)
答案 2 :(得分:0)
在客户端代码(HTML / Javascript)发布之前,您的服务器端代码(c#)无法访问表单数据。
为什么要在PageLoad
事件中找到名称?
您可以添加asp:Button
附加onClick
事件处理程序来阅读asp:Label
的值。
答案 3 :(得分:0)
标签不维护视图状态。服务器不会将该信息发回服务器。您可以尝试在Label上显式启用ViewState,但如果这不起作用,则必须将该值存储在隐藏字段中。
答案 4 :(得分:0)
首先致电Page Load event
,然后致电JQuery Window.Load event
。
因此,如果您想在Label中设置任何内容,那么您可以使用onClientClick按钮。
对于前。
<asp:Button ID="btn" runat="server" Text="Click me" OnClientClick="SetClientValues();" />
<script type="text/javascript">
function SetClientValues() {
var myNewName = "Ronaldo";
$('#<%= Label1.ClientID %>').text(myNewName);
}
</script>
在服务器端按钮事件中,您可以获得在客户端设置的Label值。
protected void btn_Click(object sender, EventArgs e)
{
string mynameCheck = Label1.Text;
if (mynameCheck=="Ronaldo")
{
Response.Write("Yes Name is Fine");
}
else
{
Response.Write("Name's not Fine");
}
}
将打印是名称很好