我是初学者
function PopupUserRegist() { result = $.ajax({ url: "Default.aspx?cmd=Setting", async: false , complete: function () { // unblock when remote call returns } }).responseText; ; }
protected void Page_Load(object sender, EventArgs e) { if (Request["cmd"] == "Setting") { div.InnerText = "test"; //This does not change inner text } }
protected void Button2_Click(object sender, EventArgs e) { div.InnerText = "test";//This change inner text }
调用PopupUserRegist()时;不会改变?
答案 0 :(得分:2)
你对使用ASP.NET的控制流感到困惑。
页面生成时服务器端出现 Page_Load()
,可以将HTML页面中即将发回的数据更改为浏览器。
当您通过JavaScript从ajax()
再次调用ASPX时,代码隐藏不能直接触及页面内容,因为它已经位于浏览器上。如果要更改页面中的数据,则必须让ASPX为responseText
中的JavaScript代码返回一个普通值:
$('#myDiv').text(
$.ajax({
url: 'Default.aspx?cmd=Setting',
async: false
}).responseText
);
或者更好的是,避免令人不快地使用同步xmlhttprequest:
$.get('Default.aspx?cmd=Setting', function(result) {
$('#myDiv').text(result);
});
如果您真的想模糊在客户端和服务器端运行的代码之间的界限,请查看使用runat="server"
,单击事件,回发和查看状态。
答案 1 :(得分:1)
检查是否符合条件。