【问题标题】:what is _ctl0 javascript and when we use this什么是_ctl0 javascript以及我们何时使用它
【发布时间】:2014-01-15 10:56:44
【问题描述】:

javascript 中的 _ctl0 是什么以及我们如何使用它。 在此他们用于存储当前选项卡的值,因为它是回发。 实际上,我正在使用 jquery、html 和 css 创建选项卡,而不是使用 jquery ui。我正面临回邮问题客栈标签。当我在第二个选项卡中时,它会移动到第一个选项卡而不是第二个选项卡。下面为此我使用_ctl0_hdnCurrentTabSelection 存储当前选项卡值。这是正确的方法吗?

如何找到我在回发期间保存的当前标签索引的另一件事。

if ($('#_ctl0_hdnCurrentTabSelection').val() == "") {
            $('#_ctl0_hdnCurrentTabSelection').val(location.hash)
        }

        $active = $($links.filter('[href="' + $('#_ctl0_hdnCurrentTabSelection').val() + '"]')[0] || $links[0]);
        $active.addClass('active');
        $content = $($active.attr('href'));

        window.location.href = window.location.href.toString() + $active.attr('href');

HTML

<ul class='tabs'>
                <li><a href='#tab1'>Tab 1</a></li>
                <li><a href='#tab2'>Tab 2</a></li>
                <li><a href='#tab3'>Tab 3</a></li>
              </ul>
              <div id='tab1' class=tabss>
                <ul class= "set2"> 
                    <li>  test 1<asp:TextBox runat="server"   /></li>
                    <li>  test 2<asp:TextBox runat="server"   /></li>
                </ul>
              </div>
              <div id='tab2' class=tabss>
                <ul class= "set2"> 
                    <li>  test 3<asp:TextBox runat="server"   /></li>
                    <li>  test 4<asp:TextBox runat="server"   /></li>
                </ul>
              </div>
              <div id='tab3' class=tabss>
                <ul class= "set2"> 
                    <li>  test 5<asp:TextBox runat="server"  ID="test5" /></li>
                    <li>  test 6<asp:TextBox runat="server"  ID="test6" /></li>
                </ul>
              </div>

【问题讨论】:

  • 请问您的 HTML 代码?
  • 您能在其他链接或 JSFiddle 中提供您的所有代码吗?
  • 它们是由 ASP.NET 引擎生成的 ClientID。一个good blog阅读
  • @Satpal 实际上 OP 想要解决他的问题。它的问题不在于 Ctr0_ 是什么。

标签: javascript jquery html asp.net


【解决方案1】:

_ctl0_ 作为服务器端 ID 唯一性的前缀。与服务器端代码一样,许多控件可以具有相同的 ID。

你可以使用

$('#<%= hdnCurrentTabSelection.ClientID %>').val()

代替

$('#_ctl0_hdnCurrentTabSelection').val()

ClientID 将准确地告诉您 asp.net 将生成什么。

如果您使用的是 .Net Framework 4 及更高版本,那么您还可以使用 ClientIDMode="static" 来保持与服务器控件相同的 html 控件 ID

ClientID 值设置为 ID 属性的值。如果 控件是一个命名容器,控件用作顶部 它包含的任何控件的命名容器层次结构, MSDN

【讨论】:

    【解决方案2】:

    ASP.NET 引擎在运行时为那些没有明确设置 ID 的控件设置 ID 值。它使用命名模式 ctlXX,其中 XX 是一个顺序递增的整数值。因此,在嵌套母版页的情况下,您将获得前缀为 ctlxx,其中 xx 将是递增值。

    控件的 ID 值以母版页的 ID 值 ctl00 为前缀。最终效果是一个 id 属性值,由母版页、ContentPlaceHolder 控件和控件本身的 ID 值组成。

    更多信息请参考http://www.asp.net/web-forms/tutorials/master-pages/control-id-naming-in-content-pages-cs

    在 jquery 中获取和设置 asp.net 控件值:

    (获取控制值) : $('[id$=ControlId]').val();和 (设置控制值) : $('[id$=ControlId]').val('Value');

    要在 jquery 中获取和设置 html 控件值,请使用:

    (获取控制值) : $('#ControlId').val();和 (设置控制值):$('#ControlId').val('Value');

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-22
      • 2011-07-04
      • 2017-10-01
      • 2016-12-18
      • 2017-10-26
      • 1970-01-01
      • 2014-05-27
      相关资源
      最近更新 更多