0

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

例子:

<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)

4

3 回答 3

0

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

stDate.ClientID
于 2012-05-15T01:31:21.653 回答
0

我想建议几件事:

  • 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浏览器实际发布内容需要

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

于 2012-05-15T03:39:36.947 回答
0

如果您使用 ASP.NET 4,您可以在文本框中将 ClientIDMode 设置为静态,然后 asp 会保留您设置的 ID。

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

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

于 2012-05-15T06:11:36.500 回答