asp:placeholder 内容更新 ajax

asp:placeholder content update with ajax

我有一个 asp:placeholder,它在加载文档时保留文字。对于 ajax,我需要更新文字。我挖了一些,但没有找到答案。

这是我的 asmx 代码:

<div class="modal fade in" id="yoklama" tabindex="-1" aria-hidden="true" style="display: none; padding-right: 17px;">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button>
                <h4 class="modal-title">Yoklama Kayıtları</h4>
            </div>
            <div class="modal-body">
                <asp:PlaceHolder runat="server" ID="tbl_pdcr_main"></asp:PlaceHolder>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn dark btn-outline" data-dismiss="modal">Close</button>
                <%--<button type="button" class="btn green">Save changes</button>--%>
                <asp:HiddenField runat="server" ID="hdf_pdcr_reg" />
            </div>
        </div>
    </div>
</div>

这是我的 javascript 代码:

$.ajax({
    url: '/Staff/PDX.aspx/GetPDCRRecords',
    method: 'post',
    contentType: 'application/json',
    data: '{r_id:' + yil + '}',
    dataType: 'json',
    success: function (data) {
        $('#<%=lbl_pdcx_y_gec.ClientID%>').text(data.d.YGec);
        $('#<%=lbl_pdcx_y_msiz.ClientID%>').text(data.d.YMaz);
        $('#<%=lbl_pdcx_y_rap.ClientID%>').text(data.d.YRap);
        $('#<%=lbl_pdcx_y_terk.ClientID%>').text(data.d.YTerk);
        $('#<%=lbl_pdcx_y_diger.ClientID%>').text(data.d.YDiger);

        $('#<%=tbl_pdcr_main.ClientID%>').replaceWith(data.d.PDCRLog);
    },
    error: function (error) {
        alert(error);
    }
});

感谢您的帮助。

您的问题是因为 PlaceHolder 不呈现任何内容 HTML,您的 ID 搜索无法找到它。

您可以尝试使用 Panel

如果您使用 ASP.NET Web 窗体框架,我建议不要依赖 Id,因为该框架会向生成的客户端代码添加一些前缀。您可以使用网络浏览器的开发人员工具检查我是否正确查看生成的代码。我会建议使用 CssClass 属性,但是,这样的东西不起作用:

<asp:PlaceHolder runat="server" ID="tbl_pdcr_main" CssClass="tbl-pdcr-main"></asp:PlaceHolder>

因为 PlaceHolder 服务器控件没有任何可见的输出,并且在我们 运行 时添加控件时用作占位符,所以它不会生成 HTML div,等结果

我会做的是向某些 HTML 元素添加一个额外的 CSS class,例如 divCssClass 应该也适用,但适用于不同的 asp 元素)

<div class="modal-body tbl-pdcr-main">
                ...

因此 ajax 代码的 success 部分可以正常工作,例如如下所示:

success: function (data) {
   $('.tbl-pdcr-main').text(data.d.YGec);
},