【问题标题】:How do you assign a specific NAME to a tag when using master pages?使用母版页时如何将特定名称分配给标记?
【发布时间】:2010-03-01 05:04:41
【问题描述】:

我正在使用母版页,我希望在表单上动态添加隐藏的文本框,其中包含 Google Checkout 期望的名称。

<input name="item_name_1" type="hidden" value="Widget #1"/>

使用VB.NET,我执行以下代码

'Name
Dim hidName As New HtmlInputHidden
hidName.ID = "item_name_" & count.ToString
hidName.Value = item
Form.Controls.Add(hidName)

但是因为我使用母版页,所以控件被重命名为“ctl00$item_name_1”。

<input name="ctl00$item_name_1" type="hidden" id="ctl00_item_name_1" 

请注意,我尝试设置 Name 属性 (hidName.Name = "item_name_" & count.ToString) 并尝试将名称添加到 Attributes 列表中。奇怪的是,这对 name 属性没有任何影响。当我不使用母版页时,我注意到当我设置 ID 属性时,NAME 会自动分配相同的值。

当您使用母版页时,有没有办法控制动态添加的控件的名称?

【问题讨论】:

    标签: asp.net vb.net master-pages google-checkout


    【解决方案1】:

    System.Web.UI.WebControls.Control 有一个名为ClientIDMode 的属性。
    您可以使用HiddenField,而不是HtmlInputHidden

     'Name
    Dim hidName As New System.Web.UI.WebControls.HiddenField
    hidName.ID = "item_name_" & count.ToString
    hidName.ClientIDMode = System.Web.UI.ClientIDMode.Static
    hidName.Value = item
    Form.Controls.Add(hidName)
    

    请参阅 Making text box hidden in ASP.NETHiddenField Class

    ClientIDMode 是在 .Net Framework 4.0 中引入的。
    对于早期版本,另一种方法是添加 asp:Literal

     'Name
    Dim hidName As New System.Web.UI.WebControls.Literal
    hidName.Text = _
      String.Format("<input name=""item_name_{0}"" type=""hidden"" value=""{1}""/>", _
                    count, item)
    Form.Controls.Add(hidName)
    

    【讨论】:

    • ClientIDMode 仅在 asp.net webforms 4.0 中可用,我相信。
    • @Chad 是的,它是在 .Net Framework 4.0 中引入的。我将答案修改为更完整,谢谢。
    【解决方案2】:

    不幸的是,简单的答案是“否”。更难的答案是“是”,但不是直截了当。一种解决方法是不要尝试设置属性,而是将名称定义为属性:

    Dim hidName As New HtmlInputHidden
    hidName.Attributes("Name") = "item_name_" & count.ToString
    hidName.Value = item
    Form.Controls.Add(hidName)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-21
      • 2018-07-21
      • 1970-01-01
      相关资源
      最近更新 更多