什么是_ctl0 javascript以及我们何时使用它

时间:2014-01-15 10:56:45

标签: javascript jquery html asp.net

javascript中的_ctl0是什么以及我们如何使用它。 因此,它们用于存储当前选项卡的值,因为它是回发。 实际上我使用jquery,html和css创建标签而不使用jquery ui。我正面临着postaback问题的旅馆标签。当我在第二个标签页时,它会进入第一个标签而不是第二个标签页。下面为此我使用_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>

2 个答案:

答案 0 :(得分:4)

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

您可以使用

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

Innstead of

$('#_ctl0_hdnCurrentTabSelection').val()

ClientID将为您提供asp.net将生成的内容。

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

  

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

答案 1 :(得分:0)

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

Control的Id值以主页的ID值ctl00为前缀。净效果是一个id属性值,由主页面的Content值,ContentPlaceHolder控件和Control本身组成。

有关详细信息,请参阅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');