C# ASP.NET OnClient单击c

C# ASP.NET OnClient单击c,c#,asp.net,onclientclick,C#,Asp.net,Onclientclick,我有一个带有onclientclick js函数的ImageButton: deleteButton = new ImageButton(); deleteButton.ID = "deleteRiskButton" + planRisk.Id; deleteButton.ImageUrl = "../../Images/deleteButton.gif"; deleteButton.Click += new ImageClickEventHandler(deleteButton_Click);

我有一个带有onclientclick js函数的ImageButton:

deleteButton = new ImageButton();
deleteButton.ID = "deleteRiskButton" + planRisk.Id;
deleteButton.ImageUrl = "../../Images/deleteButton.gif";
deleteButton.Click += new ImageClickEventHandler(deleteButton_Click);
deleteButton.OnClientClick = "removeRowAfterDeletion('" + deleteButton.ID + "')"; 
在这个JavaScript函数中,我有一个对话框,确保用户打算删除有问题的项

function removeRowAfterDeletion(buttonId)
   {
        var deleteConfirmationDialog = confirm("Are you sure you want to remove this risk from your plan?.")
        return deleteConfirmationDialog;
   }
我的印象是,如果onclientclick函数返回false,那么回发就不会发生。但是,即使I单击cancel,也会调用deleteButton\u单击c函数

知道问题出在哪里吗

deleteButton.OnClientClick = "return removeRowAfterDeletion('" + deleteButton.ID + "')";
试试这个。

试试这个:

deleteButton.OnClientClick = "return removeRowAfterDeletion('" + deleteButton.ClientID + "')";

使用deleteButton.ClientID是一个更好的选择。事实上,这只是ClientID。现在您的代码正常工作了,我想知道,为什么您需要传递按钮的ID?也许您想进一步扩展RemoveRowAfterDelete的功能。您可以始终使用return RemoveRowAfterDeletion this;传入按钮的实例。