【问题标题】:Get value of HTML5 input type search from code behind after postback in .NET在 .NET 中回发后从后面的代码中获取 HTML5 输入类型搜索的值
【发布时间】:2019-12-15 11:35:17
【问题描述】:

我正在我的网页中创建一个用于搜索的示例文本框(我正在使用 VB):

Dim txtSearchFilter As New HtmlGenericControl("input")
With txtSearchFilter
  .ID = "txtSearchFilter"
  .Attributes.Add("placeholder","Filter")
  .Attributes.Add("type","search")
  .Attributes.Add("maxlength","80")         
End With

太好了,因为这是 HTML5 样式框,它具有一些有用的功能,例如框右侧的“x”可以清除文本条目。但是,从后面的代码中,我无法检索输入的文本。我试过了:

txtSearchFilter.InnerText
txtSearchFilter.InnerHtml
txtSearchFilter.Attributes("value")
Request.Form("txtSearchFilter")

但这些都不起作用。有没有办法获得价值?

P.S.,SO 阻止我选择 HTML5 标记,而是放入 HTML 标记,即使我选择了 HTML5 标记。

【问题讨论】:

  • 最主要的是,你永远无法从后面的代码中获取 html 控件的值,它们必须是服务器控件。几个想法:将runat="server" 添加到控件中(不知道这是否可行,但我知道如果将其添加到标记中它确实可行);或创建一个服务器控件 (TextBox txt = new TextBox();)。

标签: html asp.net vb.net search web-controls


【解决方案1】:

为输入元素添加一个name属性。

txtSearchFilter.Attributes.Add("name", "txtSearchFilter")

然后在回发时,您可以通过Request.Form(name_attribute) 检索值。基于上述代码的示例:

Dim value as String = Request.Form("txtSearchFilter")

【讨论】:

  • 谢谢 - 效果很好。我认为像这样设置 ID:txtSearchFilter.ID = "txtSearchFilter",会起作用,但它没有。 name 属性成功了。
猜你喜欢
  • 2013-10-15
  • 2012-04-02
  • 2012-11-29
  • 1970-01-01
  • 1970-01-01
  • 2012-07-20
  • 2014-03-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多