当通过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#页面加载中访问Label值

标签不是输入类型,因此您无法通过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)
{ }

希望有帮助