C# 当通过jQuery设置值时,在c中访问页面加载上的标签值
我再次发布这个问题,也许这一次更准确的描述 问题是,我正在使用jQuery设置标签的文本值,它在浏览器上运行良好,但当我想将其保存为字符串时,它不会保存它。这是你的电话号码 前端Html代码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
<%@ 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 Fineinfact,它将显示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");
}
}