[ad_1]
こんにちは皆さん。
私の中で asp:GridView
コンポーネント DeleteMethod セットアップがあります。 CommandField もセットアップされます。
ASP
<asp:CommandField ShowEditButton="true" ShowDeleteButton="true" ButtonType="Image" ControlStyle-Width="24px" EditImageUrl="~/Images/edit-icon-png-3601.png" CancelImageUrl="~/Images/close-button-png-30225.png" UpdateImageUrl="~/Images/check-tick-icon-14150.png" DeleteImageUrl="~/Images/trash-can-24846.png" />
で OnRowDataBound()
私がチェックする方法 DeleteButton
そして、onclientclick イベントに JavaScript を追加します。
JavaScript は機能しますが、[OK]をクリックしても起動しません。 DeleteMethod
コードビハインドで。
JavaScriptを追加しない場合、メソッドは機能します。
削除コマンドボタンをJavaScriptで動作させるにはどうすればよいですか?
** .NET Framework 4.7.2 の使用
私が試したこと:
JavaScriptを追加する私のコード:
C
public static void AddDeleteMessage(GridViewRow row) { int nrControls = row.Controls.Count; Control lastGridViewCell = row.Controls[nrControls - 1]; var deleteButton = lastGridViewCell.Controls.OfType<ImageButton>().FirstOrDefault(btn => btn.CommandName == "Delete"); if (deleteButton != null) { deleteButton.OnClientClick = string.Format("javascript: return confirm(\"Are you sure?\");"); }
解決策 1
Web フォームのリンク/画像ボタンは、クリック時に JavaScript を呼び出すことによって実装されます。
ただし、JavaScript を追加しました 前に 無条件に戻ってくるもの true/false
、このコードは決して呼び出されないことを意味します。
ページのソースを表示すると、次のような内容が表示されます。
HTML
onclick="javascript: return confirm(...); DoPostBack(...);"
明らかに、ポストバック メソッドを呼び出すことはできません。
変更してください OnClientClick
だけに return
ユーザーがキャンセルを選択した場合:
C#
deleteButton.OnClientClick = "if(!confirm(\"Are you sure?\")){return false;}";
[ad_2]
コメント