我有一个带有许多控件的.aspx页面,例如表单视图,网格视图等。
根据我们在数据库表上捕获的规则,我想将此页面设为只读。 gridview,formview和简单文本框中的编辑按钮,更新按钮应该是只读的。
非常感谢任何帮助。
答案 0 :(得分:0)
我首先要说的是我不知道ASP。如果我使用的是WinForm,那么......
您可以在表单或面板上设置Enabled = false
以自动禁用所有子控件。
Form.Enabled = false;
// or
MyDataPanel.Enabled = false;
或者您可以创建一个需要注意的所有控件的数组,并通过它进行修改。
private MyForm()
{
InitializeComponent();
// Control array must be initialized after InitializeComponent is called.
dataControls = {
EditButton,
UpdateButton,
FormView,
SimpleTextBox};
}
private readonly Control[] dataControls;
private void BulkSetEnabled(bool value)
{
foreach (Control control in dataControls)
control.Enabled = value;
}
编辑:回应问题中的评论。
某些控件具有ReadOnly
属性,在设置时,会阻止对数据的更改并以更好的可读性呈现内容。但是像Button这样的东西不会有这个,所以现在你有了一些控件,一些需要Enabled = false
,另一些需要ReadOnly = true
。两个数组和两个循环可以做到这一点。
答案 1 :(得分:0)
标记:
<asp:Panel runat="server" ID="MyPanel" >
Name:
<br />
<asp:TextBox runat="server" ID="NameTextBox" />
<br />
<br />
Phone:
<br />
<asp:TextBox runat="server" ID="PhoneTextBox" />
<br />
<br />
<asp:Button runat="server" ID="SubmitButton" Text="Submit" />
</asp:Panel>
代码(不可编辑时):
MyPanel.Enabled = false;
代码(可编辑时):
MyPanel.Enabled = true;