Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 在不回发(使用Ajax)的情况下将子控件附加到父控件时需要指导_Jquery_Asp.net_Ajax - Fatal编程技术网

Jquery 在不回发(使用Ajax)的情况下将子控件附加到父控件时需要指导

Jquery 在不回发(使用Ajax)的情况下将子控件附加到父控件时需要指导,jquery,asp.net,ajax,Jquery,Asp.net,Ajax,我正在开发一个网站,用于问答(纯文本),到目前为止,我已经完成了后端和前端设计 伙计们,我知道在这个问题上有很多问题要问,但是,正如你们在截图中看到的,我已经完成了大部分。屏幕截图取自我使用两个嵌套的转发器和一些css样式实现的实际web页面(红色除外)。数据库也已建立,数据已提取、格式化并显示 我需要知道如何提交演示的评论。在每个问题组的末尾都有一个文本区域和一个提交按钮,提交时应将内容加载到数据库中,并将注释附加到父级,而无需完整的回帖(页面刷新) 附言:不要介意上面愚蠢的文字:D 准备接受

我正在开发一个网站,用于问答(纯文本),到目前为止,我已经完成了后端和前端设计

伙计们,我知道在这个问题上有很多问题要问,但是,正如你们在截图中看到的,我已经完成了大部分。屏幕截图取自我使用两个嵌套的转发器和一些css样式实现的实际web页面(红色除外)。数据库也已建立,数据已提取、格式化并显示

我需要知道如何提交演示的评论。在每个问题组的末尾都有一个文本区域和一个提交按钮,提交时应将内容加载到数据库中,并将注释附加到父级,而无需完整的回帖(页面刷新)

附言:不要介意上面愚蠢的文字:D


准备接受你可能提供的任何东西。谢谢

既然您提到ASP.NET中的回发,我假设您使用的是web表单

UpdatePanels(ASP.NET AJAX)

如果您试图避免完全回发,明智地使用
UpdatePanel
将是在ASP.NET中使用web表单实现此结果的最快方法。我所说的“明智使用”,是指:

  • Viewstate已禁用或非常非常小

  • 总的异步POST大小小于2K(请记住,页面上的所有表单字段都将随
    UpdatePanel
    一起提交),无论它们是否在其中

  • UpdatePanel
    上的UpdateMode设置为
    Conditional

  • 页面上有一个合理的数字(通常少于10)
    UpdatePanels
    。页面上的每个UpdatePanel都会生成脚本并增加呈现页面的开销

  • UpdatePanel
    中,您没有做任何太复杂的事情;“复杂”的一个很好的例子是客户端脚本/插件,当面板的
    innerHTML
    更新时,这些脚本/插件会变得“混乱”

jQuery/WCF解决方案

或者,您可以使用jQuery
ajax
方法将数据发送回服务器,以响应某些事件(例如单击按钮)。这将需要客户端代码和某种类型的服务器端处理程序来处理传入数据,将其持久化到数据库或视图模型中,等等

下面是使用jQuery的
ajax()
方法的一个简短示例

 $.ajax({
        type: "GET|POST", // pick GET or POST
        url: "handler URL here",
        dataType: "json",
        data: {  }, // JSON object containing data
        success: function (data) {
            // fired upon success
        }
    });

WCF是处理传入数据的最佳选择。ASP.NET 4.0对基于JSON的消息传递提供了可靠的支持,并提供了对安全性的细粒度控制,以防止未经授权的请求。WCF端点可以是ASP.NET会话感知的。

假设您可以在应用程序上使用jQuery

假设用于发送消息的按钮的id为“sendBtn”,文本框的id为“chatTxt”,并且所有聊天消息都显示在id为“chatContainer”的div中

对于AJAX-POST,您的代码如下所示:

$.post(
  "chat.php", // replace this with your server side script that saves chat messages
  { 
    text: $('#chatTxt').val()
  },
  function(data) { // this will be called once the server returns, lets say it returns OK on success
    if(data == "OK") {
      // code to append the item to the chatContainer
      // replace the appended HTML with the actual structure of each chat item in your app
      $('#chatContainer').append('<div class="chatitem">'+$('#chatTxt').val()+'</div>');
    }
  }
);
$.post(
“chat.php”//将其替换为保存聊天消息的服务器端脚本
{ 
文本:$('#chatTxt').val()
},
函数(数据){//一旦服务器返回,就会调用它,假设它在成功时返回OK
如果(数据==“正常”){
//将项目附加到聊天室容器的代码
//将附加的HTML替换为应用程序中每个聊天项目的实际结构
$('#chatContainer').append('+$('#chatTxt').val()+'');
}
}
);

不确定这是否是您的意思。我猜你的意思是你想避免重新加载页面。如果是这样的话,您可以发布一篇AJAX文章来提交评论。在它的回调中,您可以使用javascript将该项附加到父项。是的,实际上我指的是完整的回发。你能举个例子吗?谢谢,我知道如何使用它,但我想知道这是否适用于我提到的场景。@Shanedarianmuaz-我提到的两种方法都适用于你的情况,但是我会选择jQuery,因为它是轻量级的,并且将评论提交回服务器可能不需要任何ASP.NET页面生命周期功能。