【问题标题】:Access asp element in a repeater via javascript通过javascript访问中继器中的asp元素
【发布时间】:2013-11-26 15:53:46
【问题描述】:

情景:

我有一个用于注册人员的表格。我有一个“添加更多人”按钮。中继器在 Page_Load 上运行了 4 次,并且所有控件都已经在页面上(它们只是被隐藏了)。当我单击按钮时,我找到了第一个隐藏的 div 并显示它。

问题:

现在我需要对中继器生成的特定 div 中的特定元素进行处理(例如更改它的类)。但是我不知道如何访问它。按 ID 访问不起作用,按类访问也不起作用。我不能从后面的代码做任何事情,因为一切都已经在页面上。它必须在javascript中完成。有什么想法吗?

代码:

<asp:Repeater ID="rptOtherPeople" runat="server">
        <HeaderTemplate>
                 <h3>Other people</h3>
        </HeaderTemplate>
        <ItemTemplate>
            <div class="GridRow" id="personRow" style="display: none">           
                    <dl>
                        <dt class="form-lbl left">Name</dt>
                        <dd class="form-value left">
                            <asp:TextBox ID="txtFirstName" CssClass="mid-inp required" Text="" runat="server"></asp:TextBox>
                        </dd>
                    </dl>
                    <div class="clear"></div>
                    <div class="separator"></div>
          </div>
        </ItemTemplate>
        <FooterTemplate> </FooterTemplate>
    </asp:Repeater>

显示下一行的javascript:

 var peopleNum = 1;
$(document).ready(function () {
    for (i = 0; i < peopleNum; i++) {
        $(".GridRow").each(function (index) {
            if (index == i)
                $(this).show();
        });
    }
})

function addPerson() {
    peopleNum++;
    $(".GridRow").each(function (index) {
        if (index == peopleNum-1)
            $(this).show();
    });
}

【问题讨论】:

    标签: javascript jquery asp.net


    【解决方案1】:

    你能说清楚吗?您何时希望更改 CSS 或任何其他内容?我们可以在 Jquery 中处理中继器

    例子:

    $("[id*=txtFirstName]").change(function () {
             // This displays the text from the Tag element of the button...    
                    $(this).css("background", "red");
                });
    

    【讨论】:

    • 好答案..但你能解释一下吗..什么是 [id*=(我猜它在页面中搜索 id(对于每个?)
    • Yes 它将获取我们页面中包含字符串 txtFirstName 的所有 id
    • 谢谢..但是用方括号
    • 就像 Attribute:value.[] 代表语法。检查此链接一次api.jquery.com/attribute-contains-selector
    【解决方案2】:

    你有一些选择,第一个是使用 ID 来查找这样的元素数组

    $($( "input[id*='txtFirstName']" )[i]).addClass("myNewClass")
    

    这意味着其 id 包含 txtFirstName 的所有元素。

    另一个由您的网格选择:

    $($(".GridRow")[i]).find(".mid-inp").addClass("myNewClass")
    

    【讨论】:

      【解决方案3】:

      检查一下:

      $($(".GridRow")[i]).addClass("Yourclass");
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-13
        • 1970-01-01
        • 1970-01-01
        • 2010-11-12
        • 2023-04-07
        • 2023-04-04
        相关资源
        最近更新 更多