我是ASP和C#的新手,需要一些关于ASPX内部C#代码块的建议。我试过根据复选框值更改标签文本。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ Page Language="C#" %>
<html>
<body>
<form id="form1" runat="server">
<asp:CheckBox runat="server" id="CheckBox1" AutoPostBack="True" Checked="True"></asp:CheckBox>
<% if (CheckBox1.Checked==True) {%>
<asp:Label id="Label1" runat="server" Text="Checked"></asp:Label>
<% } else {%>
<asp:Label id="Label1" runat="server" Text="Not Checked"></asp:Label>
<% }%>
</form>
</body>
</html>
它不起作用,我不确定这是否是正确的方法。
答案 0 :(得分:0)
这是因为true仅拼写为小写。
你的代码工作正常,我假设你没有使用IDE,因为它会告诉你True
没有定义。你必须将其改为true
<% if (CheckBox1.Checked==true) {%>
答案 1 :(得分:0)
最好将标记和代码分成2个不同的文件(例如Default.aspx&amp; Default.aspx.cs)。 要更改标签文本,请尝试处理页面的加载事件。
Default.aspx的:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<body>
<form id="form1" runat="server">
<asp:CheckBox runat="server" id="CheckBox1" AutoPostBack="True" Checked="True"></asp:CheckBox>
<asp:Label id="Label1" runat="server"></asp:Label>
</form>
</body>
</html>
Default.aspx.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page {
protected void Page_Load(object sender, EventArgs e) {
Label1.Text = CheckBox1.Checked ? "Checked" : "Not checked";
}
}
答案 2 :(得分:-3)
首先,您必须使用javascript或jquery ...因为aspx是服务器端语言,所以在加载后它将无法控制网页。