Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 为什么在使用母版页时所有元素都被重命名?_Asp.net_Master Pages - Fatal编程技术网

Asp.net 为什么在使用母版页时所有元素都被重命名?

Asp.net 为什么在使用母版页时所有元素都被重命名?,asp.net,master-pages,Asp.net,Master Pages,我不明白这为什么有用。我有一个母版页和一个名为Main的内容持有者,还有一个内容页和一个匹配的内容标签。但是,我注意到,当页面组合在一起时,我的一些元素的ID会发生变化,或者我应该说是反常的,比如: <input value="fizz-buzz" name="ctl00$Main$options" type="radio" id="Main_foobar"/> 这对我的css造成了严重影响。请提供帮助。这是为了确保来自不同来源的多个ID始终具有唯一的名称 在ASP.NET 4

我不明白这为什么有用。我有一个母版页和一个名为Main的内容持有者,还有一个内容页和一个匹配的内容标签。但是,我注意到,当页面组合在一起时,我的一些元素的ID会发生变化,或者我应该说是反常的,比如:

<input value="fizz-buzz" name="ctl00$Main$options" type="radio" id="Main_foobar"/>


这对我的css造成了严重影响。请提供帮助。

这是为了确保来自不同来源的多个ID始终具有唯一的名称


在ASP.NET 4.0中,您可以将ClientIDMode设置为static,并且不会重命名控件。

这是为了确保来自不同来源的多个ID始终具有唯一的名称


在ASP.NET 4.0中,您可以将ClientIDMode设置为静态,并且控件不会被重命名。

这就是ASP.NET中的情况(直到3.5)。这是为了避免添加到不同内容占位符的控件的重复ID和名称


在ASP.net 4.0中,您可以控制控件ID的生成方式。

这就是ASP.net中的情况(直到3.5)。这是为了避免添加到不同内容占位符的控件的重复ID和名称


在ASP.net 4.0中,您可以控制控件ID的生成方式。

当您需要自定义ASP.net控件的样式时,始终设置其CSCLASS属性并在样式表中引用它,即使该控件是唯一的。类名永远不会更改。

当您需要自定义ASP.net控件的样式时,始终设置其CssClass属性并在样式表中引用它,即使该控件是唯一的。类名永远不会改变。

如果你一直停留在3.5上,无法升级到4.0,我会在codeplex上提供一个解决方案,我已经使用了多年

几天前刚刚上传了它,但基本上它将您指定的所有控件序列化到HTML文档上的Json数组中,以便在JavaScript中使用

我在这里写了一篇关于它的文章:

您可以注册HTTPModule,也可以在PreRenderComplete上逐页显示和序列化页面,最终会在文档中出现一个JavaScript块,如下所示:

<script type=”text/javascript”>
//<![CDATA[
var controls = {
"txtUserName": "ctl00_ContentPlaceHolder1_txtUserName",
"txtEmail": "ctl00_ContentPlaceHolder1_txtEmail",
"btnSubmit": "ctl00_ContentPlaceHolder1_btnSubmit"
};
//]]>
</script>

//
然后,在编写JavaScript时,您可以执行以下操作:

<script type=”text/javascript”>
//<![CDATA[
var element = document.getElementById(controls.btnSubmit);
//]]>
</script>

//

如果你被困在3.5上,无法升级到4.0,我会在codeplex上放一个我已经使用多年的解决方案

几天前刚刚上传了它,但基本上它将您指定的所有控件序列化到HTML文档上的Json数组中,以便在JavaScript中使用

我在这里写了一篇关于它的文章:

您可以注册HTTPModule,也可以在PreRenderComplete上逐页显示和序列化页面,最终会在文档中出现一个JavaScript块,如下所示:

<script type=”text/javascript”>
//<![CDATA[
var controls = {
"txtUserName": "ctl00_ContentPlaceHolder1_txtUserName",
"txtEmail": "ctl00_ContentPlaceHolder1_txtEmail",
"btnSubmit": "ctl00_ContentPlaceHolder1_btnSubmit"
};
//]]>
</script>

//
然后,在编写JavaScript时,您可以执行以下操作:

<script type=”text/javascript”>
//<![CDATA[
var element = document.getElementById(controls.btnSubmit);
//]]>
</script>

//

很高兴知道。在我的例子中,我根本没有使用ASP.net控件,但仍然使用有用的信息。谢谢。考虑到这会降低CSS选择器引擎的性能,我可能不鼓励这个建议。ID查找是一种简单的哈希查找,但基于类的选择器需要花费更多的时间来解决。很高兴知道。在我的例子中,我根本没有使用ASP.net控件,但仍然使用有用的信息。谢谢。考虑到这会降低CSS选择器引擎的性能,我可能不鼓励这个建议。ID查找是一种简单的哈希查找,但是基于类的选择器需要花费更多的时间来解析。这有助于ID而不是名称?这有助于ID而不是名称?