2009-09-23 18 views
12

मुझे जिस समस्या का सामना करना पड़ रहा है वह यह है कि जब किसी पृष्ठ पर सत्यापन होता है और मैं एक मॉडल पॉप-अप प्रदर्शित करने की कोशिश कर रहा हूं, तो पॉप-अप प्रदर्शित नहीं हो रहा है। और फायर-बग का उपयोग करके मैंने देखा है कि एक त्रुटि फेंक दी जा रही है।ModalPopupExtender और सत्यापन समस्या

पॉप-अप को प्रदर्शित करने के लिए उपयोग किया जाने वाला बटन वैधता को गलत पर सेट कर देता है, इसलिए मैं त्रुटि उत्पन्न करने के कारण अटक गया हूं।

मैंने अपनी समस्या को अलग करने के लिए एक नमूना पृष्ठ बनाया है, किसी भी मदद की सराहना की जाएगी।

पीछे त्रुटि

function() {Array.remove(Page_ValidationSummaries, document.getElementById("ValidationSummary1"));}(function() {var fn = function() {AjaxControlToolkit.ModalPopupBehavior.invokeViaServer("mpeSelectClient", true);Sys.Application.remove_load(fn);};Sys.Application.add_load(fn);}) is not a function 
http://localhost:1131/WebForm1.aspx 
Line 136 

एएसपी

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="CLIck10.WebForm1" %> 
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajaxToolkit" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml" > 
<head runat="server"> 
    <title></title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
     <asp:ScriptManager ID="ScriptManager1" runat="server"> 
     </asp:ScriptManager> 
     <div> 
      <asp:Button ID="btnPush" runat="server" Text="Push" CausesValidation="false" onclick="btnPush_Click" /> 
      <asp:TextBox ID="txtVal" runat="server" /> 
      <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtVal" ErrorMessage="RequiredFieldValidator" /> 
      <asp:ValidationSummary ID="ValidationSummary1" runat="server" /> 



     <asp:Panel ID="pnlSelectClient" Style="display: none" CssClass="box" runat="server"> 
     <asp:UpdatePanel ID="upnlSelectClient" runat="server"> 
      <ContentTemplate> 
       <asp:Button ID="btnOK" runat="server" UseSubmitBehavior="true" Text="OK" CausesValidation="false" OnClick="btnOK_Click" /> 
       <asp:Button ID="btnCancel" runat="server" Text="Cancel" CausesValidation="false" OnClick="btnCancel_Click" /> 
      </ContentTemplate> 
     </asp:UpdatePanel> 
     </asp:Panel> 

     <input id="popupDummy" runat="server" style="display:none" /> 

     <ajaxToolkit:ModalPopupExtender ID="mpeSelectClient" runat="server" 
     TargetControlID="popupDummy" 
     PopupControlID="pnlSelectClient" 
     OkControlID="popupDummy" 
     BackgroundCssClass="modalBackground" 
     CancelControlID="btnCancel" 
     DropShadow="true" /> 
    </div> 
</form> 

कोड

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace CLIck10 { public partial class WebForm1 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void btnOK_Click(object sender, EventArgs e) { mpeSelectClient.Hide(); } protected void btnCancel_Click(object sender, EventArgs e) { mpeSelectClient.Hide(); } protected void btnPush_Click(object sender, EventArgs e) { mpeSelectClient.Show(); } } } 
+0

क्या वे क्लिक हैंडलर स्टब्स खाली हैं क्योंकि आपको अभी तक उन्हें भरना नहीं है या क्या आपको मोडल पॉपअप को छिपाने के लिए पोस्टबैक की आवश्यकता है? यदि पोस्टबैक आवश्यक नहीं है तो इसे खोलने और बंद करने के लिए मोडल पॉपअप के क्लाइंट-साइड विधियों का उपयोग करने पर विचार करें। –

+0

मैं उन्हें कोड जोड़ दूंगा, यह सिर्फ मेरी त्रुटि को प्रदर्शित करने के लिए था। – Malachi

उत्तर

2

क्या आप पृष्ठ पर कहीं भी सत्यापन समूह का उपयोग कर रहे हैं? मुझे नियंत्रण घटनाओं में समस्याएं आई हैं जब वे एक सत्यापन समूह का हिस्सा नहीं हैं और पृष्ठ पर अन्य नियंत्रण एक सत्यापन समूह का हिस्सा हैं।

+0

ValidationGroup में सभी नियंत्रण डालने के लिए मेरे लिए काम किया। इसका उपयोग करने से पहले, यहां तक ​​कि मॉडलपॉप भी नहीं दिखा रहा था। – Zeeshanef

1

मैं इस परिवर्तित करने का प्रयास करेंगे:

<input id="popupDummy" runat="server" style="display:none" /> 
कुछ करने के लिए इस तरह

:

<asp:Button id="popupDummy" runat="server" CausesValidation="false" Visible="false" /> 

मुझे यकीन है untyped इनपुट सत्यापन की आवश्यकता होती है।

4

इस घटना पर अपनी मान्यता सारांश "सक्षम" संपत्ति को गलत पर सेट करने का प्रयास करें: "btnPush_Click" ; और उसके बाद इसे इस घटनाओं पर सक्षम = "सत्य" पर सेट करें: "btnOK_Click", "btnCancel_Click"।

मुझे लगता है कि यह काम करेगा यदि आपके पास उस पैनल के अंदर सत्यापन सारांश नहीं है जिसे आप पॉप अप करना चाहते हैं। लेकिन अगर आपको पॉप अप पैनल के अंदर सत्यापन सारांश की आवश्यकता है तो यह समाधान नहीं है ... चुड़ैल है ।। मेरे मामले :(

बेस्ट सादर

6

यह दोनों ValidationSummary और ModalPopup उपयोग करने के साथ एक मुद्दा है

यहाँ देखें:। http://ajaxcontroltoolkit.codeplex.com/WorkItem/View.aspx?WorkItemId=12835

समस्या एक लापता है कि वहाँ है "," दो में के बीच जेक्टेड स्क्रिप्ट्स।

उनका समाधान वैलिडेशनसमरी से प्राप्त एक कस्टम सर्वर नियंत्रण बनाने/उपयोग करना है, जो ";" पेज स्टार्टअप स्क्रिप्ट में बग को ठीक करने:

[ToolboxData("")] 
public class AjaxValidationSummary : ValidationSummary 
{ 
    protected override void OnPreRender(EventArgs e) 
    { 
    base.OnPreRender(e); 
    ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), this.ClientID, ";", true); 
    } 
} 
+0

ने इसे आजमाया और पैनल ने मेरे लिए काम करने के बाद –

0

मैं एक ही मुद्दा था, चाल थी मान्यता नियंत्रण करने के लिए ValidationGroup जोड़ने!

3

मैंने सभी उपलब्ध उत्तर ऑनलाइन करने की कोशिश की लेकिन किसी ने भी काम नहीं किया।फिर मैंने HTML के बहुत अंत में अपने मोडल पॉपअप विस्तारक को स्थानांतरित करने का प्रयास किया और यह मेरे लिए ठीक काम करता है। मुझे और मेरे उन खुश हैं :) मैं टैग से उपयोग नहीं कर रहा मैं सामग्री प्लेस होल्डर का उपयोग कर रहा बस नीचे की तरह:

<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server"> 
<table id="tblMessage" runat="server" width="100%" > 
    <tr align="center"> 
     <td align="center"> 

मुख्य सामग्री और

<asp:Panel ID="pnlSelectClient" Style="display: none" CssClass="box" runat="server">

<asp:ValidationSummary ID="ValidationSummary1" runat="server" /> 
    <asp:UpdatePanel ID="upnlSelectClient" runat="server"> 
     <ContentTemplate> 
      <asp:Button ID="btnOK" runat="server" UseSubmitBehavior="true" Text="OK" CausesValidation="false" OnClick="btnOK_Click" /> 
      <asp:Button ID="btnCancel" runat="server" Text="Cancel" CausesValidation="false" OnClick="btnCancel_Click" /> 
     </ContentTemplate> 
    </asp:UpdatePanel> 
    </asp:Panel> 

अगर आप देखते हैं मेरे पास पैनल के अंदर सत्यापन सारांश है क्योंकि मुझे पॉप अप के अंदर त्रुटि संदेश चाहिए (मेरे पास पॉप अप में कुछ अतिरिक्त नियंत्रण भी है)। और

यहां कुछ और HTML टैग हैं क्योंकि मेरे पास एक पृष्ठ में कई अन्य चीजें हैं। तालिका

<ajaxToolkit:ModalPopupExtender ID="mpeSelectClient" runat="server" 
    TargetControlID="popupDummy" 
    PopupControlID="pnlSelectClient" 
    OkControlID="popupDummy" 
    BackgroundCssClass="modalBackground" 
    CancelControlID="btnCancel" 
    DropShadow="true" /> 

</table> 

Done.it का काम बंद करने से ठीक पहले। उम्मीद है कि दूसरे के लिए भी काम करता है।

+0

मोडलपॉपअपक्स्टेंडर को हल करने में समस्या को ठीक नहीं किया। धन्यवाद –

0

कोशिश करने के लिए एक और चीज, यदि आपको क्लाइंट स्क्रिप्ट की आवश्यकता नहीं है तो आप इसे मार्कअप में अक्षम कर सकते हैं। ऐसा करने से हमारी समस्या ठीक हो गई।

EnableClientScript="false" 
संबंधित मुद्दे