admin管理员组文章数量:1419656
I'm trying to disable a bunch of controls with JavaScript (so that they post back values). All the controls work fine except for my radio buttons as they lose their value. In the below code which is called via a recursive function to disable all child controls the Second else (else if (control is RadioButton
)) is never hit and the RadioButton control is identified as a Checkbox
control.
private static void DisableControl(WebControl control)
{
if (control is CheckBox)
{
((CheckBox)control).InputAttributes.Add("disabled", "disabled");
}
else if (control is RadioButton)
{
}
else if (control is ImageButton)
{
((ImageButton)control).Enabled = false;
}
else
{
control.Attributes.Add("readonly", "readonly");
}
}
Two Questions:
1. How do I identify which control is a radiobutton?
2. How do I disable it so that it posts back its value?
I'm trying to disable a bunch of controls with JavaScript (so that they post back values). All the controls work fine except for my radio buttons as they lose their value. In the below code which is called via a recursive function to disable all child controls the Second else (else if (control is RadioButton
)) is never hit and the RadioButton control is identified as a Checkbox
control.
private static void DisableControl(WebControl control)
{
if (control is CheckBox)
{
((CheckBox)control).InputAttributes.Add("disabled", "disabled");
}
else if (control is RadioButton)
{
}
else if (control is ImageButton)
{
((ImageButton)control).Enabled = false;
}
else
{
control.Attributes.Add("readonly", "readonly");
}
}
Two Questions:
1. How do I identify which control is a radiobutton?
2. How do I disable it so that it posts back its value?
2 Answers
Reset to default 3I found 2 ways to get this to work, the below code correctly distinguishes between the RadioButton and Checkbox controls.
private static void DisableControl(WebControl control)
{
Type controlType = control.GetType();
if (controlType == typeof(CheckBox))
{
((CheckBox)control).InputAttributes.Add("disabled", "disabled");
}
else if (controlType == typeof(RadioButton))
{
((RadioButton)control).InputAttributes.Add("disabled", "true");
}
else if (controlType == typeof(ImageButton))
{
((ImageButton)control).Enabled = false;
}
else
{
control.Attributes.Add("readonly", "readonly");
}
}
And the solution I used is to set SubmitDisabledControls="True" in the form element which is not ideal as it allows a user to fiddle with the values but is fine in my scenario. The second solution is to mimic the Disabled behavior and details can be found here: https://web.archive/web/20210608183803/http://aspnet.4guysfromrolla./articles/012506-1.aspx'>https://web.archive/web/20210608183803/http://aspnet.4guysfromrolla./articles/012506-1.aspx.
Off the top of my head, I think you have to check the "type" attribute of the checkbox to determine if it's a radio button.
本文标签: cDisable aspnet radiobutton with javascriptStack Overflow
版权声明:本文标题:c# - Disable asp.net radiobutton with javascript - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1745316260a2653167.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论