समाधान इतना आसान नहीं है। JQuery UI संवाद के ठीक बटन दबाए जाने के बाद आपके पास मूल कॉलबैक फ़ंक्शन को कॉल करने की क्षमता होनी चाहिए।
सबसे पहले आप संवाद को दिखाने के लिए एक सामान्यीकृत js समारोह की जरूरत है: मैं
<div id="divConfirm"></div>
की तरह एक div की उपस्थिति की अपेक्षा की ग # पर
function showConfirmRequest(callBackFunction, title, content)
{
$("#divConfirm").html(content).dialog({
autoOpen: true,
modal: true,
title: title,
draggable: true,
resizable: false,
close: function(event, ui) { $(this).dialog("destroy"); },
buttons: {
'Ok': function() { callBackFunction(); },
'Cancel': function() {
$(this).dialog("destroy");
}
},
overlay: {
opacity: 0.45,
background: "black"
}
});
}
कोड-पीछे आप पिछले ग्राहक पंजीकरण कराना होगा फ़ंक्शन, मूल एएसपीनेट कॉलबैक पास करना पैरामीटर के रूप में आपके नियंत्रण का कार्य (I सामान्यीकृत):
protected void AddConfirmRequest(WebControl control, string title, string message)
{
string postBackReference = Page.ClientScript.GetPostBackEventReference(control, String.Empty);
string function = String.Format("javascript:showConfirmRequest(function() {{ {0} }}, '{1}', '{2}'); return false;",
postBackReference,
title,
message);
control.Attributes.Add("onclick", function);
}
विधि के माध्यम से GetPostBackEventReference आपके पास पोस्टबैक फ़ंक्शन पुनर्प्राप्त करने की क्षमता है जो एएसपीनेट नियंत्रण को असाइन करता है।
<asp:Repeater ID="repeater" runat="server" OnItemDataBound="repeater_OnItemDataBound">
...
<ItemTemplate>
...
<asp:Button ID="btnDelete" runat="server" Text="Delete" />
...
</ItemTemplate>
</asp:Repeater>
और कोड:
protected void repeater_OnItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
WebControl btnDelete = ((WebControl)e.Item.FindControl("btnDelete"));
AddConfirmRequest(btnDelete, "Confirm delete", "Are you sure? Really???");
}
}
मुझे आशा है कि इस मदद करता है
अब, पुनरावर्तक ItemDataBound पर, नियंत्रण है कि हटाने पर अमल करते हैं और इस समारोह के लिए इसे पारित पुनः प्राप्त।
एक्सेलेंट ने जवाब दिया है कि यह मेरे से अधिक समझने योग्य और क्लीनर उत्तर है! –
धन्यवाद, मैंने बहुत संभव सामान्यीकरण करने की कोशिश की है। मैं एक कस्टम नियंत्रण पर समाधान डालने पर काम कर रहा हूं, वास्तविक एएसपी ओवरराइड कर रहा हूं: बटन – tanathos
इसे कहीं भी पोस्ट करें, और यहां एक नोट दें! –