我想在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中只使用一个模板。 感谢
答案 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;
}
}
这样我就禁用了控件,但它也适合我。