Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 当通过jQuery设置值时,在c中访问页面加载上的标签值_C#_Jquery_Asp.net - Fatal编程技术网

C# 当通过jQuery设置值时,在c中访问页面加载上的标签值

C# 当通过jQuery设置值时,在c中访问页面加载上的标签值,c#,jquery,asp.net,C#,Jquery,Asp.net,我再次发布这个问题,也许这一次更准确的描述 问题是,我正在使用jQuery设置标签的文本值,它在浏览器上运行良好,但当我想将其保存为字符串时,它不会保存它。这是你的电话号码 前端Html代码 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html> <html xmlns="http://www

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

问题是,我正在使用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>
显示的结果是

Name's not Fine
Ronaldo

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

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

这应该可以做到:

<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)
{ }

希望有帮助:

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

为什么要在PageLoad事件中删除已存在的名称


您可以添加带有附加onClick事件处理程序的asp:按钮来读取asp:标签的值。

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

第一次调用页面加载事件,然后调用JQuery Window.Load事件

所以,如果您想在标签中设置任何内容,那么可以使用onClientClick of按钮

例如

<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>


如果我查看mynameCheck的值,它将打印Yes Name is Fine

infact,它将显示Label。这真是太神奇了!!如果您想将某些内容发布回服务器,那么使用input元素将更合适。请注意,发布表单时,只有表单中的input、select、textarea和其他用户输入元素的值才会发布到服务器…并使用val函数设置值属性。asp:Label是服务器端元素,它在浏览器中始终呈现为spanHTML元素,这不会影响原始版本的任何功能Label@Stefan同意。但在一般情况下,我只是使用jquery尝试了hiddenfield和val,但是hiddenfield1.value什么也不显示。NET PageLoad事件是在jquery窗口加载之前触发的。想想看?生成的HTML源代码在元素中显示Label,这就是为什么我猜变量接受这个值并保存它。。我们怎么解决这个问题?有没有办法解决这个问题??我的意思是延迟页面加载功能?是的,感谢您的支持,我终于有了这个想法,现在我使用querystring通过jquery将上一页的值传递到这一页。再次感谢。因为我希望使用jquery cookies从另一个页面获取名称,并且在加载新的详细信息页面时,可以使用标签中的值通过ADO显示详细信息。我希望你能明白0请帮助我Stefan,这非常重要。请使用QueryString传递附加数据,或者尝试使用c读取cookie。感谢您的建议。javascript使用quertystring传递整个内容,并使用C在新页面的标签上检索项目名称。谢谢,现在问题已经解决了。。非常感谢干杯不,仍然显示Name not Fine。@DesignerProgrammer:您希望在第一次页面加载时或在回发中使用该值吗?@DesignerProgrammer:然后应该通知您,在服务器端页面加载完成后,jquery脚本将在客户端启动。在asp.net网页的第一次页面加载之前,您无法启动jquery脚本。@DesignerProgrammer:但是您可以通过此代码在任何回发中获得所需的页面加载值。如果您这样说,请确认。非常感谢。这是在按钮点击右键,我想在页面加载。这不会发生在页面加载。我相信你会感激每个人的建议,你的要求是不可能的。
<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");

        }
}