2

次のようなascxファイルのFormViewにasp:テキストボックスがあります>

<asp:FormView runat="server" ID="myFrmView">

    <asp:TextBox runat="server" ID="txtBox1" size="20" MaxLength="150" >

</FormView>

しかし、コードビハインドascx.csファイルでは、テキストボックスから値を取得できません

string name2 = Request.Form["txtBox1"];

値を取得する方法は?

4

5 に答える 5

3

を使用する必要はありませんRequest。コードビハインドでコントロールに直接アクセスできるはずです。次のことを試してください。

var value = txtBox1.Text;
于 2013-02-26T18:08:50.900 に答える
2

わかりました、見つけました。

string value = (myFrmView.FindControl("txtBox1") as TextBox).Text;

FormView コントロールの内部にあり、ID がありませんでした。myFrmView の ID

于 2013-03-01T13:19:40.023 に答える
1

直接アクセス制御:

string text = txtBox1.Text;
于 2013-02-26T18:09:22.593 に答える
0

txtBox1.Text です。ASP.NET は、マークアップ ファイル ID で指定した名前と同じ名前の HTML 要素を生成しません。Request.Form の参照は、サーバー側のコントロールをサポートする堅牢なオブジェクト モデルをバイパスします。

于 2013-02-26T18:10:03.733 に答える
0

txtBox1.text でコントロールに直接アクセスできない場合は、ascx ファイルが上部の <% @Page %> セクションにある正しいコード ビハインド ファイルを指していることを確認します。[file].ascx.cs を指す CodeBehind 属性が必要です。

また、ascx.cs で宣言されたクラスが designer.cs ファイルのクラスと一致することを確認することもできます。そうでない場合、designer.cs の部分クラス宣言が一致せず、コントロールのプロパティがありません。

一部のファイルの名前を手動で変更し、分離コード属性を更新するのを忘れると、このエラーが発生します。

于 2013-02-26T18:20:13.723 に答える