我创建了一个带有母版页的asp页面,它有一个可变的div元素。这是当用户点击导航面板的一个链接(在主页面中)时,使用jQuery更改div元素。
我在单独的html文件中写的div内容。所以简而言之,当用户点击导航面板时,我在div中加载一个html文件,这样整个页面就不会刷新,只会刷新div部分。
一个这样的div将数据存储在数据库中。插入工作正常。现在插入完成后,我想显示一条消息,成功插入记录(从codebeind执行此操作)。我怎么能这样做?
答案 0 :(得分:0)
我不确定您尝试过的代码,或者您尝试做的代码。您可以通过以下几种方式将数据推送到客户端:
Page.ClientScript.RegisterStartupScript(
this.GetType(), @"NameOfFunction", @"alert('Message');");
这实际上会从后面的代码调用Javascript,显然这种方法有一些缺点。排除故障并不总是很明确,因为消息来源并不明显。
其次,将是所有强大的$.ajax
。通过这种方法,您实际上可以抽象一点,这很好。例如,您将得到一个值:
// Build our object with a Clean Constructor:
function BuildOrder(Product, Quantity, Price) {
var item = null;
if(Product & Quantity & Price) {
Product: Product,
Quantity: Quantity,
Price: Price
};
}
这是我们的构建者,然后我们构建我们的object
。
var order = new Array();
order.push(BuildOrder(product, quantity, price));
convertedOrder = JSON.stringify(order);
然后你有一个JSON
值,它基本上是一个从客户端传递到服务器的巨型string
。然后,您构建Ajax
。
$.ajax({
url: '<%= Page.ResolveUrl("~/Services/Credit.aspx") %>',
data: { Order: convertedOrder },
type: 'POST',
success: function (order) {
var result = JSON.parse(order);
$("#<%= txtTax.ClientID %>").val('$' + result[0].Tax).change();
$("#lblTotal").text('$' + result[0].Total);
},
failure: function () {
alert('There was an error in retrieving the total and tax, please continue inputting for it to automatically refresh.');
}
});
}
然后在服务器上,您只需使用JavaScriptSerializer
反序列化并在迭代后反序列化。将返回success
和failure
,以便它可以执行某些操作。