当我将文本框的此属性初始化为false时,属性setenabled保持为false

时间:2013-04-15 03:59:45

标签: c# javascript asp.net

我是javascript中的新编程,我有这个问题,在一个web项目中我有两个raddiobuttons(rbtn1和rbtn2)和一个文本框(txt1),当我选择rbtn1时,他的checked属性是真的(显然)和txt1的setenabled属性必须为true,当我选择rbtn2时,txt1的setenabked属性必须为false。我做了它,当我初始化txt1的属性,setenabled = true时,它完美地运行,但是当我将此属性初始化为false时,它不起作用。

为什么会这样? 有关额外信息,我在asp.net和c#项目中使用devexpress控件。 谢谢你回答..

嗨,谢谢你的回答,是的,我正在使用C#asp.net项目,但是对于这种情况,我也在使用javascript。这是radiobuttons的代码

        <dx:ASPxRadioButton ID="rbtn" runat="server" Text="Disabled" 
                ClientIDMode="AutoID" ClientInstanceName="rbtn">
                <ClientSideEvents CheckedChanged="function(s, e) {
        disabled(s, e);}" />  </dx:ASPxRadioButton>

            <dx:ASPxRadioButton ID="rbtn1" runat="server" Text="Enabled" 
              ClientIDMode="AutoID" ClientInstanceName="rbtn1" Checked="True">  
<ClientSideEvents CheckedChanged="function(s, e) {enabled(s, e);}" />
     </dx:ASPxRadioButton>

这里是javascript代码

function disabled(s, e) {
        rbtn1.SetChecked(false);
        txt1.SetEnabled(false);
    }

    function enabled(s, e) {
        rbtn.SetChecked(false);
        txt1.SetEnabled(true);
    }

正如我所说,只有当我将setenabled txt1的属性初始化为true时它才能正常工作

1 个答案:

答案 0 :(得分:0)

当ASP.NET呈现控件时,它会将它们变成一大块HTML。在这种情况下,您应该检查渲染的控件是否保持相同的ID(rbtn,rbtn1)等。

此外,您需要检查它们作为HTML控件呈现的内容。 [运行后在浏览器中执行view-&gt;源代码]通常它们会在HTML标记内呈现,因此,如果标记名为form1,控件为rbtn和rbtn1,则启用/禁用它们时使用:< / p>

document.form1.rbtn.disabled = TRUE; document.form1.rbtn1.disabled = FALSE;

适用于C#的服务器端控件的API可能不适用于JS(除非DevExpress生成一个模仿它的JS库,它在运行时自动下载,我怀疑)