ASP.NET:如何以编程方式更改DynamicControl模式

时间:2014-01-30 12:08:57

标签: asp.net dynamic controls mode

我想在ASP.NET中以编程方式更改DynamicControl模式。 我已经尝试了两种方法,但两次都失败了。 首先,我尝试在后面的代码中执行它。 DynamicControls模式设置为“编辑”。在页面加载时,我迭代了控制并试图像这样改变模式

((DynamicControl)c).Mode = DataBoundControlMode.ReadOnly;

这没有产生任何结果。

在第二种方法中,我在aspx页面中使用了内联表达式。

Mode= "<%#getDynamicControlMode(MPFormView) %>"

并且后面的代码中使用的函数是

public DataBoundControlMode getDynamicControlMode(FormView fv)
    {
        if (fv.CurrentMode == FormViewMode.ReadOnly)
            return DataBoundControlMode.ReadOnly;
        else if (fv.CurrentMode == FormViewMode.Edit)
            return DataBoundControlMode.Edit;
        else
            return DataBoundControlMode.Insert;
    }

此方法也失败,无论FormViewMode如何,控件都保持在ReadOnly模式。 我想做这个programaticall因为我想在FormView中只使用一个模板。 感谢

1 个答案:

答案 0 :(得分:0)

最后我发现我需要深入了解DynamicControl来获得底层控件。 所以我使用以下代码解决了我的问题:

                  foreach (Control ct in cont.Controls)//cont is the DynamicControl
                       {
                           foreach (Control ci in ct.Controls)
                           {
                               if (ci is CheckBox)
                                   ((CheckBox)ci).Enabled = enable;
                               if (ci is TextBox)
                                   ((TextBox)ci).Enabled = enable;
                           }
                       }

这样我就禁用了控件,但它也适合我。