ASP.NETAJAXアプリケーションで深刻な問題が発生しています。
私のアプリケーションにはjavascript関数があり、Timer_Tickイベントの後に実行する必要があります。背後にあるコードは次のとおりです。
void SetValues()
{
try
{
StringBuilder sbScript = new StringBuilder();
sbScript.Append("<script language='javascript' type='text/javascript'>");
sbScript.Append("function UpdateValue() {");
for (int j = 0; j < iTotalDevices; j++)
{
sbScript.Append("setElementValue(" + j.ToString() + "," + DevicesInfo[j].X.ToString() + "," + DevicesInfo[j].Y.ToString() + "," + iStatus.ToString() + "," + DevicesInfo[j].DeviceID.ToString() + ");");
}
sbScript.Append("}");
sbScript.Append("</script>");
ScriptManager.RegisterStartupScript(this, this.GetType(), "myscript", sbScript.ToString(), false);
}
catch
{ }
}
protected void Timer1_Tick(object sender, EventArgs e)
{
///This function will get latest values from database
GetNewData();
SetValues();
}
javascript関数'UpdateValue'を初めて呼び出すと(onloadページイベントで)、正しく機能します。ただし、Timer_Tickイベントの後は、何も実行されません。これはHTMLコードです:
<script type="text/javascript" language="javascript">
function PageLoad() {
///Call function for the first time and it works
UpdateValue();
}
function setElementValue(index, value1, value2, value3...) {
///Set value for each element in object array
}
</script>
<body onload="PageLoad()">
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<asp:Timer ID="Timer1" runat="server" OnTick="Timer1_Tick" Interval="30000">
</body>
ScriptManagerまたはTimer_Tickイベントの問題は何ですか?
どうもありがとう、