通过ajax webmethod更新母版页上的对象

时间:2014-03-07 12:04:31

标签: c# jquery ajax

如何通过ajax webmethod在我的主页上更新转发器? 我在网络方法中找不到母版页时遇到了麻烦。

编辑:有更好的方法吗?基本上我想在运行我的ajax webmethod登录脚本后更新转发器。

MasterPage Jquery:

<script type="text/javascript">
$(document).ready(function () {
    $('#btn_logout').click(function () {
        $.ajax({
            type: "POST",
            url: "Webmethods.aspx/logIn",
            data: '{username: "' + username + '", password: "' + password + '"}',
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (response) {
                // UPDATE REPEATER DATA
            }
        }
    }
</script>

MasterPage转发器:

<asp:Repeater ID="Repeater_Menu" runat="server">
<ItemTemplate>
</itemTemplate>
</asp:Repeater>

编辑:对这个相对简单的问题没有一个答案?

1 个答案:

答案 0 :(得分:1)

除非事情发生重大变化,否则WebMethods是静态方法。因此,他们无法访问他们所属页面的任何属性或字段 - 并且包括母版页上的对象。

另一个障碍是,使用服务器上的AJAX 完成的事情不会影响已经呈现给客户端的HTML。要更改客户端的外观,您需要使用javascript(大概是jQuery)。

你可以做的是:

  1. 在代码中创建Repeater控件
  2. 以编程方式创建模板(非常可行,但可能很复杂)
  3. 将其绑定到您的数据源
  4. 将其渲染为字符串
  5. 将呈现的HTML发送回客户端
  6. 使用新HTML替换Repeater的先前呈现。
  7. 重新创建您可能正在执行的任何客户端事件处理。