【发布时间】:2012-05-15 22:40:44
【问题描述】:
我正在尝试从 javascript 函数调用服务器端按钮单击方法,但它不起作用,我能知道我做错了吗?
aspx代码:
<asp:Button ID="ButtonFns" Name="ButtonFns" runat="server" Text="Finish"
OnClientClick ="CountDownTick()" class="finish" onclick="ButtonFns_Click" />
Javascript 代码:
function CountDownTick() {
if (_currentSeconds <= 0) {
document.getElementById('<%= ButtonFns.ClientID %>').click();
return;
}
SetCountdownText(_currentSeconds-1);
window.setTimeout("CountDownTick()", 1000);
}
C# 按钮点击:
protected void ButtonFns_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\Examination.mdf;Integrated Security=True;User Instance=True");
try
{
con.Open();
string snm;
string Em;
string Sx;
string uname = Session["status"].ToString();
string qry = "SELECT SName,Email,Sex FROM Students WHERE Uname=@uname";
SqlCommand cm = new SqlCommand(qry, con);
cm.Parameters.AddWithValue("@uname", uname);
SqlDataReader reader = cm.ExecuteReader();
while (reader.Read())
{
snm = reader["SName"].ToString();
Em = reader["Email"].ToString();
Sx = reader["Sex"].ToString();
if (snm != null && Em != null && Sx != null)
{
Session["snm"] = snm.ToString();
Session["em"] = Em.ToString();
Session["sx"] = Sx.ToString();
Session["uname"] = uname;
Session["RAns"] = LabelRitAns.Text;
Session["Tatt"] = LabelTotAtt.Text;
Server.Transfer("YourScore.aspx");
break;
}
}
}
catch (Exception emsg)
{
LabelErr.Text= emsg.Message.ToString();
}
finally
{
con.Close();
}
}
任何帮助将不胜感激..
【问题讨论】:
-
“它不工作”到底是什么意思?这里没有人会读心术。
-
@Abhishek ,请理解您的按钮是服务器端控件,因此您不能像以前那样调用代码隐藏方法。
-
Javascript 是否在浏览器中正确呈现?你有任何错误吗?您是否尝试过在 CountDownTick() 中设置断点?
-
你在哪里减少
_currentSeconds的值?
标签: c# javascript asp.net