私は、フォームビュー、グリッドビューなど多くのコントロールを持つ.aspxページを持っています。ルールに基づいてすべてのコントロールを読み取り専用にするにはどうすればよいですか?
私たちがデータベーステーブルに取り込むルールに基づいて、このページを読み取り専用にします。編集ボタン、gridview、formview、および単純なテキストボックスの更新ボタンは、読み取り専用にする必要があります。
ご協力いただければ幸いです。
私は、フォームビュー、グリッドビューなど多くのコントロールを持つ.aspxページを持っています。ルールに基づいてすべてのコントロールを読み取り専用にするにはどうすればよいですか?
私たちがデータベーステーブルに取り込むルールに基づいて、このページを読み取り専用にします。編集ボタン、gridview、formview、および単純なテキストボックスの更新ボタンは、読み取り専用にする必要があります。
ご協力いただければ幸いです。
私は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;
}
EDIT:問題のコメントを受けて。
一部のコントロールにはReadOnly
というプロパティがあり、設定するとデータの変更が防止され、読みやすくすることができます。しかし、Buttonのようなものはこれを持っていないので、コントロールの組み合わせがあります。Enabled = false
を必要とするものとReadOnly = true
を必要とするものがあります。 2つの配列と2つのループがそれを行うことができます。
Hand-E-Foodに感謝します。 ReadOnlyプロパティはデータコントロールには使用できません。 – user728148
マークアップ:
<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;
すべてcontolsは、[有効]と呼ばれるプロパティを持っています(http ://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.webcontrol.enabled.aspx)。 –
真。しかし、私は多くを持っているので、私はすべてのコントロールのためにそれを追加したくありません。 – user728148
読み取り専用ボタンとは何ですか? –