c# - 哪个先开火?ASP SQLDataSource 或 C# 查询字符串?
问题描述
我有一个 GridView,用户单击删除按钮。当按下该删除按钮时,它会附加到 ASP 页面本身的 SQL 数据源。这样做可以减轻必须选择行然后删除的情况。
我在 GridView 中也有一个
OnRowDeleting="GridView1_RowDeleting"
称呼。这个方法在后面的代码中比较简单。ASP SQL 数据源使用 CASE WHEN 检查表中的值,并执行更新或不更新。
之后我意识到 OnRowDeleting 总是会在 GridView 控件实际删除它之前发生。当 SQL 数据源不触发执行时,它可以正常工作。(我不希望它基于 CASE WHEN 子句)然后 OnRowDeleting 方法触发并调用我拥有的 Javascript 调用 .. 看起来像这样。
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
ClientScript.RegisterStartupScript(GetType(), "hwa", "Ealert();", true);
}
当 SQL 数据源按预期正确执行时,问题就出现了,OnRowDeleting (GridView1_RowDeleting) 仍然触发。
有没有办法仅在 SQL 数据源未执行时触发该 Javascript?
解决方案
我不确定我是否问对了问题。不过,没关系。我找到了我正在寻找的答案。基本上,我需要一种方法来访问 GridView 中的某个单元格而不选择它。在 GridView 中按下删除按钮时,它会调用我设置的 OnRowDeleting 方法。从那里我选择并比较它的值,如下所示:
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
TableCell cell = GridView1.Rows[e.RowIndex].Cells[12];
if(cell.Text == "Yes")
{
//Do Nothing
}
else
{
ClientScript.RegisterStartupScript(GetType(), "hwa", "Ealert();", true);
e.Cancel = true;
}
}
我没有意识到我可以以这种方式访问牢房。我最初的问题可能没有意义并且似乎不适用,但我问它认为我必须对背后的代码运行 SQL 查询,而不是使用 ASP SQL 数据源。这样做可以解决所有问题。
推荐阅读
- php - 使用 file_get_contents 在 PHP 脚本中的 cURL POST 请求
- java - 如何包括是否为 Springboot 用户身份验证启用用户帐户
- git - 还原 2 个合并提交时 git merge 出现问题
- python - JSONDecodeError:期望值:第 1 行第 1 列(字符 0)streamlit API
- python - 将图像附加并嵌入到 Discord
- r - 如何在 R 中为这个嵌套的 for 循环编写更有效的代码?
- python - 创建平衡面板数据集
- javascript - Raku 相当于 JavaScript 的`setTimeout(fn, 0)`?
- c# - 多个子字符串在 MVC Razor 视图中不起作用
- c++ - 创建用于在 MFC 控件上使用 printf 样式字符串格式显示状态更新的函数