[ad_1]
مرحبا يا رفاق،
في asp:GridView
المكون لدي إعداد RemoveMethod. تم أيضًا إعداد CommandField:
<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.
تعمل جافا سكريبت، لكن موافق لا يؤدي إلى بدء تشغيل DeleteMethod
في كود بيهايند.
عندما لا أقوم بإضافة جافا سكريبت، تعمل الطريقة.
كيفية جعل زر أمر الحذف يعمل مع جافا سكريبت؟
** استخدام برنامج .NET Framework 4.7.2
ما حاولت:
الكود الخاص بي لإضافة جافا سكريبت:
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
يتم تنفيذ أزرار الارتباط/الصورة WebForms عن طريق استدعاء بعض JavaScript عند النقر فوقها.
لكنك أضفت جافا سكريبت قبل ما يعود دون قيد أو شرط true/false
مما يعني أنه لن يتم استدعاء هذا الرمز أبدًا.
إذا قمت بعرض مصدر صفحتك، فسترى شيئًا يشبه:
onclick="javascript: return confirm(...); DoPostBack(...);"
من الواضح أنه لا يمكن استدعاء طريقة إعادة النشر أبدًا.
تغيير الخاص بك OnClientClick
الى فقط return
إذا اختار المستخدم الإلغاء:
deleteButton.OnClientClick = "if(!confirm(\"Are you sure?\")){return false;}";
[ad_2]
コメント