asp.net 带有 OnClick="return false" 的复选框(<== 只读)。如何在后面的代码中改成"return true"(<==可以写)
asp.net checkbox with OnClick="return false" (<== read only). How to change to "return true" (<== can write) and back in code behind
我有一个 asp:checkbox
和 OnClick="return false"
,其中 'closes' 用于更改(这与我发现的 ReadOnly=true
最接近)。
我也有一个按钮。
当我 单击按钮 时,我需要代码隐藏 (C#) 将复选框更改为 "return true",即:更改为 'open' 以选中或取消选中。再次单击该按钮应该 'close' 它会再次返回。
简而言之 - 如何在后面的代码中切换这两种状态?
HTML:
<asp:Button runat="server" ID="my_Button" Text="click me" OnClick="my_Button_Click" />
<asp:CheckBox runat="server" ID="my_CheckBox" Checked="true" OnClick="return false;" />
后面的代码:
protected void my_Button_Click(object sender, EventArgs e)
{
// here is where the toggling should come... <============
}
如您在此处所见:OnClick vs OnClientClick for an asp:CheckBox? - 复选框没有 OnClick。您应该改用 OnCheckedChanged。
我附上了对问题的小修复:
<asp:Button runat="server" ID="my_Button" Text="click me" OnClick="my_Button_Click" />
<asp:CheckBox runat="server" ID="my_CheckBox" Checked="true" OnCheckedChanged="my_checkbox_click" />
后面的代码:
protected void my_checkbox_click(object sender, EventArgs e)
{
}
protected void my_Button_Click(object sender, EventArgs e)
{
my_CheckBox.Enabled = !my_CheckBox.Enabled;
}
为了实现这个,我加了一个HiddenField
,在后面的代码中使用了
HTML:
<asp:HiddenField runat="server" ID="my_Hidden_Field" Value="readonly" />
<asp:Button runat="server" ID="my_Button" Text="click me" OnClick="my_Button_Click" />
<asp:CheckBox runat="server" ID="my_CheckBox" Checked="true" OnClick="return false;" />
后面的代码:
protected void my_Button_Click(object sender, EventArgs e)
{
if (my_Hidden_Field.Value == "readonly")
{
my_Hidden_Field.Value = "canwrite";
my_CheckBox.Attributes.Add("onclick", "return true;");
}
else
{
my_Hidden_Field.Value = "readonly";
my_CheckBox.Attributes.Add("onclick", "return false;");
}
}
(像往常一样,我找了一两天的解决方案,放弃了,post在这里提出一个问题,然后我想出了一个答案......希望这对其他人有帮助:-)
我有一个 asp:checkbox
和 OnClick="return false"
,其中 'closes' 用于更改(这与我发现的 ReadOnly=true
最接近)。
我也有一个按钮。
当我 单击按钮 时,我需要代码隐藏 (C#) 将复选框更改为 "return true",即:更改为 'open' 以选中或取消选中。再次单击该按钮应该 'close' 它会再次返回。
简而言之 - 如何在后面的代码中切换这两种状态?
HTML:
<asp:Button runat="server" ID="my_Button" Text="click me" OnClick="my_Button_Click" />
<asp:CheckBox runat="server" ID="my_CheckBox" Checked="true" OnClick="return false;" />
后面的代码:
protected void my_Button_Click(object sender, EventArgs e)
{
// here is where the toggling should come... <============
}
如您在此处所见:OnClick vs OnClientClick for an asp:CheckBox? - 复选框没有 OnClick。您应该改用 OnCheckedChanged。 我附上了对问题的小修复:
<asp:Button runat="server" ID="my_Button" Text="click me" OnClick="my_Button_Click" />
<asp:CheckBox runat="server" ID="my_CheckBox" Checked="true" OnCheckedChanged="my_checkbox_click" />
后面的代码:
protected void my_checkbox_click(object sender, EventArgs e)
{
}
protected void my_Button_Click(object sender, EventArgs e)
{
my_CheckBox.Enabled = !my_CheckBox.Enabled;
}
为了实现这个,我加了一个HiddenField
,在后面的代码中使用了
HTML:
<asp:HiddenField runat="server" ID="my_Hidden_Field" Value="readonly" />
<asp:Button runat="server" ID="my_Button" Text="click me" OnClick="my_Button_Click" />
<asp:CheckBox runat="server" ID="my_CheckBox" Checked="true" OnClick="return false;" />
后面的代码:
protected void my_Button_Click(object sender, EventArgs e)
{
if (my_Hidden_Field.Value == "readonly")
{
my_Hidden_Field.Value = "canwrite";
my_CheckBox.Attributes.Add("onclick", "return true;");
}
else
{
my_Hidden_Field.Value = "readonly";
my_CheckBox.Attributes.Add("onclick", "return false;");
}
}
(像往常一样,我找了一两天的解决方案,放弃了,post在这里提出一个问题,然后我想出了一个答案......希望这对其他人有帮助:-)