無効なテキストボックスの値を取得するクライアント側のサーバー側asp.net

---------------------- EDIT

私は簡単な言葉では、私がしようとしているのは、フォームが投稿されたときにSQL挿入ステートメントで使用する無効なテキストボックスのポスト値を取得することです。


JavaScriptで無効になっているテキストボックスの値を取得する必要があります。最終的には、SQL挿入文のパラメータとして値を使用します。私はこのようなことをすることによって価値を得る必要があることを読んだ:

Request.Form(EnterDateTXT.ClientID)

私の理解は、これは、コントロールのIDのhtmlレンダリングされた値を返すだけです。実際にテキストボックス内のテキストの値を取得するにはどうすればよいですか?

ASP.NET VBは私が働いている言語です

1
この問題への回答をマークするか、自分で追加して、これを解決した場合はそれを回答としてマークしてください。
追加された 著者 Kratz,
disabled ではなく readonly をテキストボックスにすることはできますか?
追加された 著者 Yuriy Rozhovetskiy,
ClientIDはID = "ClientID"というテキストボックスの名前ですか?ブラウザーは、POSTで値をポストするためにコントロールの名前を使用します。フォームの提出を見てください。 w3.org/TR/html4/interact/forms。 html#h-17.13.2
追加された 著者 Keith Beard,

6 答え

ユーザーがテキストボックスのテキストを変更できないようにしながら、テキストボックスの値を投稿できる最良の方法は、プログラム上で readonly 属性を true に設定することでした PageLoad 。この方法では、テキストボックスはユーザー入力に対して「無効」になりますが、.NET4はJavaScriptによって設定されたtexboxの値を送信します。テキストボックスの.textプロパティにアクセスすることで、通常はサーバー側でテキストボックス値にアクセスできました。

私の理解は.NETがポストバックの状態を保持し、テキストボックスが enabled = false または readonly = true に設定されていれば.NETはこれらのcantrolの値をとる変更することはできず、値を送信しません。ロード時に enabled = false または readonly = true を設定すると、ポストバック状態でテキスト値を取得できます

0
追加された
私は似たようなことを経験した私はJQueryを使ってコントロールを無効にしていて、それがサーバーにポストされていないことを発見しました。私はそれが.NETであることを知らないが、私の記事で述べたようにブラウザであるかもしれない。
追加された 著者 Brian Mains,

無効にされたコントロールは、必ずしもサーバーにポストバックされません。私はこれがブラウザだと思うが、サーバーはそれをやっているわけではないが、100%確実ではない。とにかく、あなたがそれを隠すか、または読み込み専用にするとうまくいくはずです。サーバーでEnabled = "false"を設定しても、クライアントでdisabled = "disabled"を意味するとは限りません。場合によっては、コントロールを無効にすると、レンダリングが大きく異なります。それは本当にコントロールに依存します。

HTH。

0
追加された

フォームからフィールドを取得するときに行うことは、次の再帰的メソッドを実行することです。これは、読み取り専用と無効化されたテキストボックスを処理します。

このメソッドはテキストボックスのTextプロパティを更新するため、コントロールのクライアント側の状態について他のコードで気にする必要はありません。

''' 
''' If a TextBox is marked as readonly, its value will not be updated into the server-side textbox control even though they are persisted.
''' This method copies the values from the Request.Form into textbox.text for all readonly textbox controls.
''' 
''' 
''' 
Private Sub RetrieveReadOnlyTextBoxValues(ByVal cControls As ControlCollection)
    ' Exceptions are handled by the caller

    For Each oControl As Control In cControls
        If TypeOf oControl Is TextBox Then
            DirectCast(oControl, TextBox).Text = Request.Form(oControl.UniqueID)
        End If
        If oControl.HasControls Then
            Call RetrieveReadOnlyTextBoxValues(oControl.Controls)
        End If
    Next
End Sub
0
追加された
これは私が必要とするように聞こえる。フォームを送信するときに RetrieveReadOnlyTextBoxValues()を呼び出すと、 ByVal cControls As ControlCollection に渡す必要があるパラメータは何ですか?
追加された 著者 JDV590,
@ mumis2012:申し訳ありませんが、これを含めることを意味します。これがページまたはユーザーコントロールにある場合は、 Me.Controls を渡します。また、ポストバックでない場合にのみ呼び出すようにしてください。
追加された 著者 competent_tech,

.NETコントロールはポストバック時に状態を維持しますが、利用可能なEnterDateTXTという TextBox オブジェクトがあります:

Dim txt as String = EnterDateTXT.Text;
0
追加された

Textboxvalue as string = textboox1.text

0
追加された
私はテキストボックスがasp.netのテキストボックスコントロールであると言うべきです。
追加された 著者 JDV590,

あなたのフォームがpostメソッドでリクエストされた場合は、フォームコントロールの値を構文で取得できます

Request.Form(EnterDateTXT.ClientID)

サーバーサイドにあります。

you can refer the link http://msdn.microsoft.com/en-us/library/ms525985%28v=vs.90%29.aspx

0
追加された
JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript