0

私はこのasp.netコントロールを持っています:

<asp:TextBox ID="txtName" runat="server" EnableViewState="false" ReadOnly="true" /> 

そして、私はそれを読み取り専用にしたいのですが、通常は withReadOnly="trye"または withEnable="false"

readonly="true"クライアント側で JavaScript を使用してこのコントロールの値を変更すると、変更された値はサーバー側のポストバックを介して伝播されませんenable="false"

javascriptで値を変更すると、値がポストバックを介して伝播されるようにするには、どうすれば読み取り専用にできますか?

4

1 に答える 1

0

「ポストバック中に JavaScript によって変更されたデータを失う」の解決策 は、この記事 の ViewState と Textbox の Readonly プロパティで最もよく説明されています。

たとえば、次の asp.net コントロールがあるとします。

<asp:TextBox ID="txtName" runat="server" EnableViewState= "false" ReadOnly="true" /> 

クライアント側で JavaScript を使用してこのコントロールの値を変更すると、変更された値はサーバー側のポストバックを介して伝播されませんreadonly="true"。上記の記事で説明されているように、この問題に対する解決策があります。

これを PageLoad イベントに入れるだけです

if (!IsPostBack)
    txtName.Attribute.Add("readonly","readonly");

これで完了です。削除することを忘れないでください。ReadOnly="true"またはEnable="false"、コントロールの編集を無効にすることが意図されている場合は、上記のスニペットを使用してください。Enable="false"付けたら外すのを忘れずに。

于 2013-09-29T07:24:18.613 に答える