gpt4 book ai didi

c# onclick 和 onclientclick 同时

转载 作者:行者123 更新时间:2023-12-02 17:48:50 25 4
gpt4 key购买 nike

我为网页上的“退出”按钮编写了 onclientclick 和 onclick 事件。单击时,应首先执行更新语句,然后关闭窗口。

<asp:Button ID="ExitButton" runat="server"  OnClientClick="javaScript:self.close(); return false;" OnClick="ExitButton_Click"  UseSubmitBehavior="false" Text="Exit" Width="102px" CssClass="CssStyle2" Height="29px" />

protected void ExitButton_Click(object sender, EventArgs e)
{
string sqlUpd = @"UPDATE top (2) [db1].[TestTable] set flag=0
where Date is null and flag=-1";
using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["SQLConnectionString"].ConnectionString))
{
connection.Open();
SqlCommand cmdUpd = new SqlCommand(sqlUpd, connection);

try
{
Int32 rows = cmdUpd.ExecuteNonQuery();
connection.Close();
}
catch (Exception eupd)
{
lblUpdateErr.Text = "Error occurred in update";
}
}
}

Onclientclick 正在触发,但 onclick 并未触发,即记录未更新。有办法实现吗?

谢谢拉什米

最佳答案

OnClientClick 在回发发生之前执行。它通常用于客户端验证之类的事情,您需要使用 return false 来防止回发发生。由于您总是从处理程序返回,因此回发将永远不会执行,因此服务器端处理程序也不会被调用。

您需要删除 OnClientClick 属性,并在服务器端处理程序中调用此行:

ScriptManager.RegisterStartupScript(this, this.GetType(), "windowclose", "self.close();", true);

这将导致窗口在回发执行后关闭并将结果返回到浏览器。这也意味着如果更新因异常结束,窗口不会关闭。

关于c# onclick 和 onclientclick 同时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21550410/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com