将表推到屏幕上
本文关键字:屏幕 | 更新日期: 2023-09-27 18:01:48
我有一个AJAX请求,当我的jstree的一个分支被点击
$("#jstree").bind("select_node.jstree", function(evt, data)
{
var idArgument = data.node.text;
$.ajax(
{
type: "POST",
url: "WebForm1.aspx/brancheSelectionnee",
data: JSON.stringify({ id: idArgument }),
contentType: "application/json; charset=utf-8",
success: function(msg)
{
;
}
});
});
所以,我调用这个函数,它创建一个新的"页面"(因为它是静态的),并调用一个返回System.Web.UI.WebControls.Table
的函数。
public static string brancheSelectionnee(string id)
{
var page = (WebForm1)HttpContext.Current.CurrentHandler;
System.Web.UI.WebControls.Table tableau = page.brancheSelectionneeNonStatique(id);
var stringWriter = new StringWriter();
using (var htmlWriter = new HtmlTextWriter(stringWriter))
{
tableau.RenderControl(htmlWriter);
}
string tableauString=stringWriter.ToString();
return "randomstring";
}
这里的大问题:我的"tableau"更新了,我想要的(我看到这与htmlWriter),但是…我不知道怎么把它放到我的屏幕上的!我在我的c#代码中有它,但我希望它在屏幕上,而不仅仅是在这里。
我有"tableauArticle"这是一个真正的System.Web.UI.WebControls.Table
,在我的ASP.net代码。我尝试了一些东西,比如把tableauArticle设为Static,然后
tableauArticles = tableau;
但是我没有看到任何变化。我想我在页面中更新了一个表,我没有显示
我认为主要的问题是我的页面没有刷新或者我做错了我的表
执行AJAX请求,因此不会刷新页面。您只需从服务器方法返回一个字符串(带有HTML)。然后,您必须手动将该字符串放在页面上。这发生在success
回调函数,在你的代码是空的。作为第一步,尝试这样做:
success: function(msg)
{
$('<div class="newtable">').html(msg).appendTo('body');
}
在服务器端,您的方法brancheSelectionnee
需要AjaxMethod
属性,以便可以用AJAX调用它:
[Ajax.AjaxMethod()]
public static string brancheSelectionnee(string id)
(也应该是return tableauString;
而不是"randomstring"
,对吧?)而且我不确定您是否可以在那里使用HttpContext.Current.CurrentHandler
,但这是第二步,如果基本的AJAX的东西工作。
答案是100% Raidri解决方案:
$('#tableauArticles').empty();
$('<div class="newtable">').html(msg.d).appendTo('#tableauArticles');