每当用户从Web表单上的下拉列表中选择一个数字时,我都会有一个表单执行自动后备。 autopostback运行下面的代码来计算表单的编号。
截图:
问题是我每次都会在屏幕上看到一个令人讨厌的闪烁重新计算/自动回复。
是否有其他方法可以对此进行编码以阻止闪烁?
C#
protected void Page_Load(object sender, EventArgs e)
{
int intNum1 = 0;
int intNum2 = 0;
int intNum3 = 0;
int totalt = 0;
intNum1 = int.Parse(ddlNoadults.SelectedValue);
intNum2 = int.Parse(ddlNoseniors.SelectedValue);
intNum3 = int.Parse(ddlNochildren.SelectedValue);
totalt = (intNum1 * 10) + (intNum2 * 8) + (intNum3 * 6);
tbTotal.Text = totalt.ToString();
}
此致
茶
答案 0 :(得分:2)
使用UpdatePanel和AJAXing,计算应删除或至少大幅减少闪烁。
http://www.asp.net/ajax/documentation/live/overview/UpdatePanelOverview.aspx
答案 1 :(得分:1)
你可以用jquery / javascript来做。本教程how to start jquery将为您提供帮助。
$('#<%= ddlNoadults.ClientID &>', '#<%= ddlNoadults.ClientID &>',
'#<%=ddlNoadults.ClientID &>').change(function(){
calculate();
});
function calculate(){
num1 = parseInt($('#<%= ddlNoadults.ClientID &>').val());
num2 = parseInt($('#<%= ddlNoseniors.ClientID &>').val());
num3 = parseInt($('#<%= ddlNochildren.ClientID &>').val());
totalt = (num1 * 10) + (num2 * 8) + (num3 * 6);
$('#<%= tbTotal.ClientID &>').val(totalt)
}
$(document).ready(function(){
calculate();
});
答案 2 :(得分:0)
假设您可以依赖于在浏览器中启用了javascript的用户,这是一个简单的客户端解决方案。
只需附加一个函数,该函数将所选值与您想要触发计算的每个ddl的更改事件相加...
$("#id-of-ddl").change(callyoursumfunctionhere);