通过javascript访问中继器中的asp元素

Access asp element in a repeater via javascript

本文关键字:asp 元素 中继器 javascript 访问 通过      更新时间:2023-10-07

场景:

我有一个表格,用来登记人员。我有一个按钮"添加更多的人"。中继器在Page_Load上运行了4次,所有控件都已在页面上(它们只是隐藏的)。当我点击按钮时,我发现了第一个隐藏的div,并将其显示出来

问题:

现在,我需要在中继器生成的specificdiv中使用specific元素(例如,更改它的类)。但是我不知道如何访问它。按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();
    });
}

你能澄清一下吗??你希望什么时候更改CSS或任何其他东西??我们可以在Jquery 中处理中继器

示例:

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

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

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

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

另一个是由您的网格选择:

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

检查此项:

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