0

我再次发布这个问题,也许这次更准确的描述。

问题是,我使用 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

似乎字符串仍然为空。渲染有问题吗??

4

5 回答 5

0

标签不是输入类型,因此您无法通过服务器端的 jquery 获取更改的值。您可以为此目的使用隐藏字段。

于 2013-04-12T07:02:24.437 回答
0

在您的客户端代码 (HTML/Javascript) 发布之前,您的服务器端代码 (c#) 无法访问表单数据。

为什么要在PageLoad活动中已经命名?

您可以添加asp:Button带有附加onClick事件处理程序的 a 来读取asp:Label.

于 2013-04-12T07:19:24.153 回答
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)
{ }

希望能帮助到你 :)

于 2013-04-12T07:18:17.700 回答
0

标签不保持视图状态。服务器不会将该信息发布回服务器。您可以尝试在标签上显式启用 ViewState,但如果这不起作用,则必须将该值存储在隐藏字段中。

于 2013-04-12T07:22:39.767 回答
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>

在服务器端按钮事件中,您可以获得在客户端设置的标签值。

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

于 2013-04-12T07:40:17.357 回答