查找由包含字符串的id在运行时从服务器端添加的asp控件

本文关键字:服务器端 添加 控件 asp 运行时 包含 字符串 id 查找 | 更新日期: 2023-09-27 17:49:13

我想在客户端对标签单击执行一些操作。所以我有一个视图:

<telerik:RadMultiPage runat="server" ID="rmpRightBar">
                        <telerik:RadPageView runat="server" ID="rpvHelpDetails">
                            //some code
                        </telerik:RadPageView>
                        <telerik:RadPageView runat="server" ID="rpvSearchDetails">
                            <asp:Table runat="server" ID="tblSearchResult">
                            </asp:Table>
                        </telerik:RadPageView>
                    </telerik:RadMultiPage>

和代码后面,我在运行时添加标签到我的视图表:

private void SearchResultShow(IEnumerable<HelpModel> helpCollection)
    {
        var helpResultRow = new TableRow();
        foreach (var help in helpCollection)
        {
            var helpCell = new TableCell();
            var label = new Label();
            label.ID = "SearchResult_" + help.ID;
            label.Text = help.Title;
            helpCell.Controls.Add(label);
            helpResultRow.Cells.Add(helpCell);
        }
        tblSearchResult.Rows.Add(helpResultRow);
    }

然后我想在客户端访问我的标签并在单击时执行一些操作。

JavaSctipt代码:

$(document).ready(function () {
    $('[id*=SearchResult_]').click(function () {
        alert("Handler for .click() called.");
    });
});

因为我有2个页面浏览量我之间切换。在我切换视图后,我的javascript不工作。

我如何访问asp控件添加在运行时的一部分它的id使用jquery?

查找由包含字符串的id在运行时从服务器端添加的asp控件

在您的页面中加入RadScriptBlock,并将您的javascript代码放入其中。然后将其RadScriptBlock的Id添加到您用于在views之间切换的ajax settings中。

我知道这不是类的作用,但是为什么不使用它们呢?

可以通过类引用元素,而不是通过ID引用元素。需要注意的一点是,要确保没有为任何样式规则使用类(可以通过选择任意名称轻松避免)