为什么控件确实包含值但是设置为.Enable = False所有控件都变为禁用(这没关系)但为什么ViewState不会在下一篇文章中保留数据?如果我在没有修改其启用状态的情况下获得UserControl,则ViewState在回发之间工作。
我们如何禁用一个UserControl,它的所有控件都被禁用(这部分工作)但是所有这些都保持使用ViewState(这不起作用)?
1)在aspx.cs中单击按钮编辑:
myControl.Enabled = false;
//This produce to have all controls in myControl to be disabled.
2)在asp.cs中:单击“保存”退出编辑状态:
myControl.Enabled = true;
//This produce that all controls inside myControl are blank : no viewstate!
其他回发有效,因为我们没有将myControl.Enable设置为false。
答案 0 :(得分:4)
指定.Enable=False
就像是服务器端禁用,而不是客户端禁用。这是出于安全目的,因此即使用户使用某些客户端技巧来“重新启用”它,您也可以真正禁用输入元素。如果要执行客户端禁用,则需要使用脚本,或者使用readonly
属性。
答案 1 :(得分:0)
您是否尝试过Page.Form.SubmitDisabledControls = true;
答案 2 :(得分:0)
这是设计使然,如果您希望控件使用ViewState并仍然被禁用,那么您已禁用ClientSide上的控件。我使用Page.ClientScript来处理这个并注册你的javascript以禁用控件。