【发布时间】:2012-12-04 06:01:40
【问题描述】:
我是这个 c# 编码的新手。 我正在尝试使用复选框编写代码。以下是设计流程中的代码
<table>
<tr>
<td align="right">
<asp:Label ID="lblOwn" runat="server" Text="Owned by You :"></asp:Label>
</td>
<td align="left">
<asp:CheckBoxList ID="chbxOwn" runat="server"
OnSelectedIndexChanged="onAckTypeChanged3" AutoPostBack="true">
<asp:ListItem>2 wheeler</asp:ListItem>
<asp:ListItem>4 wheeler</asp:ListItem>
</asp:CheckBoxList>
</td>
</tr>
<tr>
<td align="right">
<asp:Label ID="Label1" runat="server" Text="2 w"></asp:Label>
</td>
</tr>
<tr>
<td align="right">
<asp:Label ID="Label2" runat="server" Text="4 w"></asp:Label>
</td>
</tr>
</table>
以下是代码隐藏
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Hid1();
Hid2();
}
protected void onAckTypeChanged3(object sender, EventArgs e)
{
if (chbxOwn.SelectedItem.Text == "2 wheeler")
{
Vis1();
}
if (chbxOwn.SelectedItem.Text == "4 wheeler")
{
Vis2();
}
}
private void Hid1()
{
Label1.Visible = false;
}
private void Hid2()
{
Label2.Visible = false;
}
private void Vis1()
{
Label1.Visible = true;
}
private void Vis2()
{
Label2.Visible = true;
}
}
选中“2 Wheeler”复选框时,“2 w”标签可见。但是当我检查“四轮车”时,它并没有显示两个标签。我想知道我在哪里犯了错误。此外,当我取消选中这两个复选框时,会生成 Null 引用异常。
你能帮我解决这些问题吗 1. 选中两个复选框应显示两个标签。 2. 取消选择不应该产生空引用异常。
提前致谢 问候, 阿布舍克
【问题讨论】:
-
你能多测试几次,以不同的顺序检查它们吗?
-
当你选中“4 Wheeler”时,两个复选框都会被选中吗?
-
@SamIam :我确实以不同的顺序检查了它们。首先检查 2 Wheeler -> 显示 2 w 标签。然后检查 4 Wheeler -> 隐藏 2 w 并显示 4 w。此时两个复选框都被选中。当我取消选择 4 Wheeler -> 显示 2 w 标签。取消选择后都显示空引用异常
-
@JonathanWood:请参考我之前的评论。你可能会找到你的答案。如果我需要清除更多内容,请告诉我
标签: c# asp.net checkboxlist