2012-03-23 9 views
13

निष्पादित करने से पहले ASP.NET पुष्टि करें मेरे पास एक ऐसा फॉर्म है जहां कोई उपयोगकर्ता एक रिकॉर्ड हटा सकता है, और मुझे एक पॉप अप संदेश चाहिए जहां उपयोगकर्ता को हटाने की पुष्टि करने के लिए ठीक क्लिक करना है।कोडबेहिंड

हटाएँ बटन:

<asp:Button ID="btnDelete" runat="server" Text="Delete" UseSubmitBehavior="false" OnClick="btnDelete_Click" OnClientClick="confirmation();" /> 

पुष्टि समारोह:

function confirmation() { 
     var answer = confirm("Are you sure you want to delete? This action cannot be undone.") 
    } 

तो अभी, तो हटाएँ बटन पर क्लिक कोड में btnDelete_Click उप पीछे की परवाह किए बिना कि क्या आप ठीक क्लिक करें या में रद्द कार्यान्वित पॉप अप बॉक्स। मुझे पता है कि अगर मैं अपने जावास्क्रिप्ट फ़ंक्शन में (उत्तर) {- कुछ कोड यहां -} जोड़ सकता हूं, लेकिन क्या कोडबेंड से कोड निष्पादित करने के लिए जावास्क्रिप्ट का उपयोग करना संभव है? या ऐसा करने का कोई और तरीका है?

+2

जब क्लिक ठीक है तो उपयोगकर्ता क्लिक रद्द और सत्य होने पर झूठी वापसी की आवश्यकता होती है। इसके द्वारा उत्तर देखें: थिट लविन ओओ –

उत्तर

30

कृपया निम्नानुसार प्रयास करें। आपको पुष्टिकरण फ़ंक्शन (सत्य या गलत) का परिणाम वापस करना होगा।

<asp:Button 
    ID="btnDelete" 
    runat="server" 
    Text="Delete" 
    UseSubmitBehavior="false" 
    OnClick="btnDelete_Click" 
    OnClientClick="return confirmation();" /> 

 

function confirmation() { 
    return confirm("Are you sure you want to delete?"); 
} 
+16

आप केवल 'वापसी की पुष्टि कर सकते हैं (...) ' – Esailija

+0

काम नहीं करता है, फिर भी पीछे कोड में btnDelete_Click उप निष्पादित करता है ... – Sara

+1

@ सारा इसे काम करना चाहिए। मैंने इस मुद्दे का अनुभव किया है और बिंदु OnClientClick = "वापस JSFunction();" और जेएसएफक्शन सही या गलत लौटता है। यदि गलत है, तो यह वापस पोस्ट नहीं करेगा। कृपया इसे फिर से प्रयास करें। –

-2

आप कोड में पहुँच तरीकों को जावास्क्रिप्ट चाहते हैं के पीछे आप उन्हें हमेशा एक RESTful सेवा में दिखा सकता है।

$.ajax({ 
    url: 'url to the rest call', 
    success: successfuntion(), 
    dataType: 'text/json' 
}); 

क्या आरईएसटी कॉल आपको जो भी तर्क चाहिए, उसे सफलतापूर्वक इंगित करने के लिए कुछ डेटा वापस भेज दें। फिर बस डीओएम से तत्व को हटाने के लिए सफलता समारोह का उपयोग करें।

0

यदि आप वास्तव में पोस्ट को वापस किए बिना सर्वर के पक्ष में कुछ कोड उत्साहित करना चाहते हैं, तो आपको ऐसा करने के लिए AJAX का उपयोग करना होगा।

function confirmation() { 
     var answer = confirm("Are you sure you want to delete? This action cannot be undone.") 
     if(answer) 
     { 
      $.post("ajaxserverpage.aspx?item=34",function(data){ 
       alert(data); 
      }); 
     } 
     return false; 
    } 

और एक पृष्ठ कहा जाता ajaxserverpage.aspx है और उस पृष्ठ के पृष्ठ लोड में, क्वेरी स्ट्रिंग की जाँच करें और अपने प्रासंगिक सर्वर साइड कोड निष्पादित और वापस जाने के कुछ स्ट्रिंग

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (Request.QueryString["item"] != null) 
     { 
      // read the item and do your stuff here 
     Response.Write("Deleted succssfully"); 
     Response.End(); 
     } 
    } 

तुम भी उपयोग कर सकते हैं generic handler (.ashx) .aspx फ़ाइल के बजाय अपने AJAX सर्वर साइड प्रोसेसिंग करने के लिए। मैं इस विधि को पसंद करूंगा।

4

इस नमूने का उपयोग करें:

<asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="return ConfirmOnDelete();"/> 

<script type="text/javascript">  
    function ConfirmOnDelete() { 
    if (confirm("Do you really want to delete?") == true) 
     return true; 
    else 
     return false; 
    } 
</script> 
9

अपने aspx कोड में इस रखो :

OnClientClick="return confirm('Are you sure you want to delete this project?');" 
3

हम आसानी से ConfirmButtonExtend का उपयोग कर ऐसा कर सकते हैं एर,

<ajaxToolkit:ConfirmButtonExtender ID="cbeDelete" TargetControlID="btnDelete" ConfirmText="Are you sure you want to delete? This action cannot be undone." runat="server"> 

बहुत सरल इसके ...

0

मैं ऊपर लगता है कि अगर आप बटन के साथ इसका इस्तेमाल करने, <asp:link button> प्रयास करें सक्षम नहीं हैं काम करना चाहिए। मेरा काम ठीक है।

ASPX पेज: -

<asp:LinkButton ID="takeActionBtn" CausesValidation="false" runat="server" 
     onclientclick="return confirm('Do you really want to perform Action ?');"> Take Action </asp:LinkButton> 

वीबी सर्वर codebehind: -

Protected Sub takeActionBtn_Click(ByVal sender As Object, ByVal e As EventArgs) Handles takeActionBtn.Click 

End Sub 

एक बात मैं ध्यान दिया है कि आप एक पृष्ठ आप कर सकते हैं के भीतर नियंत्रण (ascx) प्रयोग कर रहे हैं पृष्ठ या नियंत्रण स्तर पर बंद/बंद करने की आवश्यकता है AutoEventWireup="false" <%@ control in <%@ page

शुभकामनाएं !!

0

1) पर्चा डिजाइन

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<title></title> 
<script type = "text/javascript"> 
    function Confirm() { 
     var confirm_value = document.createElement("INPUT"); 
     confirm_value.type = "hidden"; 
     confirm_value.name = "confirm_value"; 
     if (confirm("Do you want to save data?")) { 
      confirm_value.value = "Yes"; 
     } else { 
      confirm_value.value = "No"; 
     } 
     document.forms[0].appendChild(confirm_value); 
    } 
</script> 
</head> 
<body> 
<form id="form1" runat="server"> 
    <asp:Button ID="btnConfirm" runat="server" 
OnClick = "OnConfirm" Text ="Raise Confirm" OnClientClick = "Confirm()"/> 
</form> 
</body> 
</html> 

2) codebehind

public void OnConfirm(object sender, EventArgs e) 
{ 
string confirmValue = Request.Form["confirm_value"]; 
if (confirmValue == "Yes") 
{ 
this.Page.ClientScript.RegisterStartupScript(this.GetType(),"alert('You clicked YES!')", true); 
} 
else 
{ 
    this.Page.ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert('You clicked NO!')", true); 
} 
} 

3) आप हटाएँ बटन पुष्टि बॉक्स क्लिक करने पर प्रदर्शित किया जाएगा।

4) आप ठीक क्लिक करें फिर ठीक हिस्सा किसी और कोड नहीं भाग

5) एक ही विधि GridView में हटाएं बटन में काम करेंगे।

3

मुझे पता है कि यह पुरानी पोस्ट है, लेकिन आप उपरोक्त उत्तरों को इस तरह एक पंक्ति में डाल सकते हैं। और आपको फ़ंक्शन लिखने की भी आवश्यकता नहीं है।

<asp:Button runat="server" ID="btnDelete" Text="Delete" OnClick="btnDelete_Click" OnClientClick="if (!confirm('Are you sure you want to delete ? ')) return false;" /> 
+1

सरल अभी तक सुरुचिपूर्ण, यह मेरे लिए भी काम करता है। और कुछ अन्य समाधानों की तुलना में कम कोड। –

0

तुम बस रख सकते हैं:

onclientclick = "return (window.confirm('text message')); 

ASPX पेज में, यह एक ही बात करता है।