asp.net 选中 C# 复选框
本文关键字:复选框 选中 net asp | 更新日期: 2023-09-27 18:31:19
如何确定复选框是选中还是未选中?非常困惑为什么这不起作用 - 它是如此简单!
在我的网络表单上:
<asp:CheckBox ID="DraftCheckBox" runat="server" Text="Save as Draft?" />
<asp:Button ID="PublishButton" runat="server" Text="Save" CssClass="publish" />
在我的保存按钮的单击事件中运行的代码:
void PublishButton_Click(object sender, EventArgs e)
{
if (DraftCheckBox.Checked)
{
newsItem.IsDraft = 1;
}
}
调试时,当我在浏览器中选中复选框时,它永远不会单步进入 If 语句。想法?!
我认为可能还有其他一些代码会影响这一点,如下所示......
在Page_load我有以下内容:
PublishButton.Click += new EventHandler(PublishButton_Click);
if (newsItem.IsDraft == 1)
{
DraftCheckBox.Checked = true;
}
else
{
DraftCheckBox.Checked = false;
}
newsItem 是我的数据对象,我需要相应地设置复选框选中状态。点击保存按钮时,我需要根据复选框的选中状态更新 IsDraft 属性:
void PublishButton_Click(object sender, EventArgs e)
{
if (IsValid)
{
newsItem.Title = TitleTextBox.Text.Trim();
newsItem.Content = ContentTextBox.Text.Trim();
if (DraftCheckBox.Checked)
{
newsItem.IsDraft = 1;
}
else
{
newsItem.IsDraft = 0;
}
dataContext.SubmitChanges();
}
}
因此,isDraft = 1 应等于复选框处于选中状态,否则应取消选中复选框。目前,它没有显示这一点。
指定按钮单击的事件
<asp:Button ID="PublishButton" runat="server" Text="Save" onclick="PublishButton_Click" />
我可以看到你的按钮上没有OnClick
。所以像这样:
<asp:CheckBox ID="DraftCheckBox" runat="server" Text="Save as Draft?" />
<asp:Button ID="PublishButton" runat="server" OnClick="PublishButton_Click"
Text="Save" CssClass="publish" />
然后函数应该像它一样工作:
protected void PublishButton_Click(object sender, EventArgs e)
{
if (DraftCheckBox.Checked)
{
newsItem.IsDraft = 1;
}
}
请将代码替换为以下代码。
void PublishButton_Click(object sender, EventArgs e)
{
if (DraftCheckBox.Checked==True)
{
newsItem.IsDraft = 1;
}
}
尝试在窗体的按钮字段中添加onclick="PublishButton_Click"
。 而且我不知道这是否有区别,但是生成的事件处理程序受到无效保护。
对我来说,最好的解决方案是创建2个单独的页面:1个用于编辑新闻文章,1个用于新新闻文章。因此,当页面重新加载时,Ill 永远不会处于正在创建新的新闻数据对象的位置。
按下保存按钮时,这两个页面都会返回到文章索引列表页面,这似乎可以保存草稿复选框的状态,然后在编辑页面上显示状态。
复选框.checked 未在您想要的上下文中使用(这是一个布尔值,如果为 true,将使复选框看起来处于选中状态)。
您可以做的是改用复选框列表。然后,您可以执行以下操作:
foreach(Listitem li in CheckBoxList1.Items)
{
if (li.Selected)
{
NewsItem.Isdraft = 1;
}
}