当通过jQuery设置值时,在c#页面加载中访问Label值
本文关键字:加载 Label 访问 jQuery 设置 | 更新日期: 2023-09-27 18:09:00
我再次发布这个问题,也许这次更准确的描述。
问题是,我使用jQuery来设置标签的文本值,它在浏览器上工作得很好,但是当我想将其保存为字符串时,它不会保存它。这是前端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
似乎字符串仍然是Null。渲染有问题吗??
标签不是输入类型,因此您无法通过jquery在服务器端更改值。您可以使用隐藏字段来实现此目的。
你的服务器端代码(c#)不能访问表单数据,直到你的客户端代码(HTML/Javascript)发布它。
为什么你想在PageLoad
事件中使用这个名字?
您可以添加带有附加onClick
事件处理程序的asp:Button
来读取asp:Label
的值。
标签不保持视图状态。服务器不会将该信息发送回服务器。您可以尝试显式地在标签上启用ViewState,但如果这不起作用,则必须将该值存储在隐藏字段中。
先呼叫Page Load event
,再呼叫JQuery Window.Load event
。
所以如果你想在标签中设置任何内容,那么你可以使用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>
在服务器端按钮事件中,您可以获得在客户端设置的标签值。
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");
}
}
它将打印Yes Name is Fine
应该这样做:
<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)
{ }
希望有帮助