加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 在使用母版页时,如何为标记分配特定的名称?

发布时间:2020-12-16 07:43:21 所属栏目:asp.Net 来源:网络整理
导读:我正在使用母版页,我正在使用Google Checkout期望的名称在表单上动态添加隐藏文本框. input name="item_name_1" type="hidden" value="Widget #1"/ 使用VB.NET,我执行以下代码 'NameDim hidName As New HtmlInputHiddenhidName.ID = "item_name_" count.ToSt
我正在使用母版页,我正在使用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),并尝试将名称添加到“属性”列表中.这奇怪地对name属性没有任何影响.当我不使用母版页时,我注意到当我设置ID属性时,NAME会自动分配相同的值.

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

解决方法

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.NET和HiddenField 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)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读