2011-02-25 15 views
3

我有一个asp:DropDownList元素,需要在我的代码中引用,但我需要它有一个非常特殊的名称,因此我不能使用它作为id。设置一个asp的html'名字'attriubute:DropDownList

是否可以在.aspx文件中手动设置名称?当我现在试着这样做:

的HTML呈现两个名称属性。

+1

一般你不能那样做。服务器控件将使用像container_ControlId一样的id来呈现,并且名称将是容器$ ControlId。 – Jith 2011-02-25 16:07:26

回答

1

name属性会自动生成,这意味着您无法设置它。但是你可以通过控件的ClientID属性来访问它。

+0

不幸的是,设置name属性是我的应用程序的一个要求。还有其他解决方法吗?或者是停止使用webcontrols并使用纯HTML的最佳方法? – BenMills 2011-02-25 16:08:43

+0

你需要什么样的特殊字符在ID? – Hna 2011-02-25 16:14:44

+0

这里是一个例子:user [name] – BenMills 2011-02-25 16:24:07

0

虽然不完全符合OP的要求,但可以在加载页面后使用JavaScript或jQuery更改name属性。假设您可以在别处放置所需的名称。例如,假设你设置DropDownList的类属性为“MyValue123”,然后你可以添加一个JavaScript上单击处理器无论是在页面加载或提交(以下假设jQuery的支持):

<select class="MyValue123"> 
</select>  

<script type="JavaScript"> 
    function fixSelectNames(){ 
     $("select").each(function(){ 
      $(this).attr("name", $(this).attr("class")); 
     }); 
    } 
    $(document).ready(function(){ 
     fixSelectNames(); 
    }); 
</script> 

<input type="submit" value="Go" onclick="fixSelectNames();" /> 

自然可以通过ASPX编写JavaScript代码,以便它包含“MyValue123”的正确值。当放置在Submit按钮的JavaScript on-click处理程序中时,代码将在浏览器发布参数前执行,导致服务器以更新的名称接收值。