当通过jQuery设置值时,访问c#中Page load上的Label值
我再次发布这个问题,也许这次更准确的描述。
问题是,我使用jQuery设置Label的文本值,它在浏览器上工作正常,但是当我想将它保存到字符串时,它不会保存它。 这是前端Html代码。
$(window).load(function () { var myNewName = "Ronaldo"; $('#').text(myNewName); });
这是后端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。 渲染有什么问题吗?
label不是输入类型,因此您无法通过服务器端的jquery获取更改的值。 您可以使用隐藏字段来实现此目的。
在客户端代码(HTML / Javascript)发布之前,您的服务器端代码(c#)无法访问表单数据。
为什么要在PageLoad
事件中使用该名称?
您可以添加带有附加的onClick
事件处理程序的asp:Button
来读取asp:Label
的值。
标签不维护viewstate。 服务器不会将该信息发回服务器。 您可以尝试在Label上显式启用ViewState,但如果不起作用,则必须将该值存储在隐藏字段中。
首先调用Page Load event
,然后调用JQuery Window.Load event
。
因此,如果要在Label中设置任何内容,则可以使用onClientClick按钮。
对于前者
在服务器端按钮事件,您可以获取在客户端设置的Label值。
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
这应该这样做:
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) { }
希望能帮助到你 :)