テキストボックスをとして作成するのではなくHTML
、コントロールを作成してページに追加します。
IE
''IN VB
Dim tb as New TextBox() with {.ID = "box", .ClientIDMode = UI.ClientIDMode.Static }
// In C#
TextBox tb = new TextBox {
ID = "box",
ClientIDMode = UI.ClientIDMode.Static
};
を使用ClientIDMode=Static
すると、コードビハインドで設定したIDが、.netで変更されるのではなく、HTMLにレンダリングされるIDになります。
次に、これをdivIDに追加します
divID.Controls.Add(tb)
これで、によるポストバックでアクセスできるようになります。postbackメソッドでは、コントロールを取得する必要がありFindControl
ます。これは、ページ上の既知のコントロールではないためです。divIDでFindControlを使用しています。これにより、そのdiv内で、前に作成したテキストボックスが検索されます。
''VB
Dim tb as TextBox = CType(divID.FindControl("box"), TextBox)
// C#
TextBox tb = (TextBox)divID.FindControl("box");
必要に応じて呼び出すことで、JQueryを介してこのTextBoxの値にアクセスすることもできます$("#box").val()
。