如何根据控制器中的名称获取文本框值

本文关键字:获取 取文本 何根 控制器 | 更新日期: 2023-09-27 18:34:13

有人知道如何根据控制器中的名称获取文本框值吗?

例:

<asp:TextBox runat="server" ID="stDate" Text='<%# Eval("StartDate")%>' Width="6em" />

当我从源代码中读取时,它如下所示:

<input name="ctl00$cplh$GridView1$ctl10$stDate" type="text" id="stDate" style="width:6em;" />

如何根据控制器中的名称ctl00$cplh$GridView1$ctl10$stDate获取此文本框值?

注意:我想以这种方式这样做的原因是因为我有超过 1 个文本框使用相同的 ID (stDate)

如何根据控制器中的名称获取文本框值

要获取页面上生成的 ID,您必须获取 ClientID

stDate.ClientID
我想

建议几点:

  • ID 必须是唯一的,您应该为页面中的每个控制器分配一个唯一标识符。
  • .NET 需要与控件挂钩 - 因此,如果要由 .NET 创建,则需要设置名称(即使尝试强制更改,也无法更改它)。
  • 如果要在控制器之间分配公用名,请使用属性类,例如: <input id="txtbox1" class="commonController" type="text" value="input1"> <input id="txtbox2" class="commonController borderClass" type="text" value="input2">

PD:请记住,您可以为控制器分配多个类。

  • 还要记住,id仅用于客户端 DOM 操作... 浏览器实际发布内容需要name

如果您想了解更多信息,请查看此处和此处

如果使用

ASP.NET 4,则可以在文本框中将ClientIDode设置为静态,然后asp将id保留为设置时的状态。

<asp:TextBox runat="server" ID="stdate" ClientIDMode="Static" />

如果需要在客户端脚本中使用文本框,这会有所帮助。这是一篇关于它的文章。您需要确保 id 是唯一的,如果您需要一个通用名称,最好按照 Luis 的建议使用类。