Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从ascx.cs文件中的ascx文件的FormView中的textbox获取文本值_C#_Asp.net_.net_Textbox - Fatal编程技术网

C# 如何从ascx.cs文件中的ascx文件的FormView中的textbox获取文本值

C# 如何从ascx.cs文件中的ascx文件的FormView中的textbox获取文本值,c#,asp.net,.net,textbox,C#,Asp.net,.net,Textbox,我在ascx文件的FormView中有一个asp:文本框,如下所示> <asp:FormView runat="server" ID="myFrmView"> <asp:TextBox runat="server" ID="txtBox1" size="20" MaxLength="150" > </FormView> 如何获取值?您不需要使用请求,您应该能够直接访问代码后面的控件,请尝试: var value = txtBox1.Text;

我在ascx文件的FormView中有一个asp:文本框,如下所示>

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

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

</FormView>

如何获取值?

您不需要使用
请求
,您应该能够直接访问代码后面的控件,请尝试:

var value = txtBox1.Text;

直接访问控制:

string text = txtBox1.Text;

是txtBox1.Text。ASP.NET不会生成与您在标记文件ID中提供的名称相同的HTML元素,也不会引用请求。表单绕过了支持服务器端控件的健壮对象模型。

如果无法使用txtBox1.text直接访问控件,然后我会检查以确保您的ascx文件指向顶部部分中的正确代码隐藏文件。应该有一个CodeBehind属性指向[file].ascx.cs

您可能还需要检查以确保ascx.cs中声明的类与designer.cs文件中的类匹配。如果不匹配,designer.cs中的分部类声明将不匹配,并且您将没有控件的属性

如果我手动重命名某些文件并忘记更新代码隐藏属性,则会出现此错误。

好,我找到了它

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

问题是FormView控件内部没有id.id的myFrmView

这将根据发布的值从服务器端获取另一个甜把戏
string name2=Request.Form[txtBox1.UniqueID]Chris_45我建议编辑您的问题。。您在这里留下了许多困惑…没有消息>名称txtBox1在当前上下文中不存在。即使它在ascx文件中并试图进入ascx.cs文件。@Chris_45这意味着您在控件的标记中没有
runat=“server”
,或者控件不在
元素中,而
runat=“server”
@Chris\u 45就像迈克说的,确保你有runat=“server”看看他的代码..他有runat=“server”“在他的初始帖子中,designer.cs中声明的类名是否与ascx.cs匹配?是的,但我必须更改它,但与>“当前上下文中不存在该名称”相同的错误这是在formview或listview模板中的正确答案。
string value = (myFrmView.FindControl("txtBox1") as TextBox).Text;