如何根据控制器中的名称获取文本框值
本文关键字:获取 取文本 何根 控制器 | 更新日期: 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 的建议使用类。