asp:使用ajax更新占位符内容

时间:2019-08-19 14:58:28

标签: c# jquery asp.net ajax webforms

我有一个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);
    }
});

感谢帮助。

2 个答案:

答案 0 :(得分:1)

您的问题来自事实,即PlaceHolder无法呈现任何HTML,因此您的id搜索无法找到它。

您可以尝试使用Panel

答案 1 :(得分:1)

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

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

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

我要做的是在某个HTML元素中添加一个额外的CSS类,它可以以div为例(CssClass也可以工作,但适用于不同的asp元素)

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

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

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