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 回答