【问题标题】:How to get the text value from textbox within a FormView from ascx file in the ascx.cs file如何从 ascx.cs 文件中的 ascx 文件中的 FormView 中的文本框中获取文本值
【发布时间】:2013-02-26 18:07:39
【问题描述】:

我在 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"];

如何获取价值?

【问题讨论】:

  • 这将根据发布的另一个甜蜜技巧string name2 = Request.Form[txtBox1.UniqueID]; 从服务器端获取它
  • Chris_45 我建议编辑你的问题..你在这里留下了很多困惑......

标签: c# asp.net .net textbox


【解决方案1】:

不用Request,应该可以直接在后面的代码中访问控件,试试:

var value = txtBox1.Text;

【讨论】:

  • No message> 名称 txtBox1 在当前上下文中不存在。
  • 即使它在 ascx 文件中并试图进入 ascx.cs 文件。
  • @Chris_45 这意味着您在控件的标记中没有runat="server" - 或者控件不在带有runat="server"&lt;form&gt; 元素内。
  • @Chris_45 就像 Mike 说的,确保你有 runat="server"
  • 看看他的代码..他在最初的帖子中有 runat="server"
【解决方案2】:

好的,我找到了。

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

什么是 FormView 控件内部并且没有 id。 myFrmView的ID

【讨论】:

  • 这是在 formview 或 listview 模板中的正确答案。
【解决方案3】:

直接访问控制:

string text = txtBox1.Text;

【讨论】:

    【解决方案4】:

    它是 txtBox1.Text。 ASP.NET 不会生成与您在标记文件 ID 中指定的名称相同的 HTML 元素,并且引用 Request.Form 是绕过支持服务器端控件的健壮对象模型。

    【讨论】:

      【解决方案5】:

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

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

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

      【讨论】:

      • designer.cs 中声明的类名是否与 ascx.cs 匹配?
      • 是的,但我不得不更改它,但同样的错误 > 'The name doesn't exist in the current context'
      猜你喜欢
      • 1970-01-01
      • 2015-01-14
      • 2023-04-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-27
      • 2018-01-09
      • 2014-07-17
      • 1970-01-01
      相关资源
      最近更新 更多