विलोपन की पुष्टि करने के लिए जावास्क्रिप्ट का उपयोग करने पर ASP.NET ग्रिडव्यू में Deletemethod सक्रिय नहीं होता है


हाय दोस्तों,

मेरे में asp:GridViewघटक मेरे पास DeleteMethod सेटअप है। इसके अलावा 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 फ्रेमवर्क 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

जब आप वेबफॉर्म लिंक/छवि बटन पर क्लिक करते हैं तो उन्हें कुछ जावास्क्रिप्ट को कॉल करके कार्यान्वित किया जाता है।

लेकिन आपने जावास्क्रिप्ट जोड़ा है पहले जो बिना शर्त लौटाता है true/falseजिसका अर्थ है कि इस कोड को कभी भी कॉल नहीं किया जाएगा।

यदि आप अपने पृष्ठ का स्रोत देखते हैं, तो आपको कुछ ऐसा दिखाई देगा:

एचटीएमएल
onclick="javascript: return confirm(...); DoPostBack(...);"

स्पष्ट रूप से पोस्टबैक पद्धति को कभी भी नहीं बुलाया जा सकता।

अपना बदलें OnClientClick केवल को return यदि उपयोगकर्ता रद्द करना चुनता है:

सी#
deleteButton.OnClientClick = "if(!confirm(\"Are you sure?\")){return false;}";

コメント

タイトルとURLをコピーしました