I have a textbox txtPctDown inside an update panel. On textchanged, a sub is called that does a calculation and puts the result in to a label in a modal dialog. When the text changes, the sub is reached but the modal dialog doesn't appear. if I eliminate
the UpdatePanel then everything works fine. I tried with an without using the textchanged as a trigger.
How do I get the modal dialog to appear when the text changes?
Any javascript code that is added for some control inside updatepanel does not work after first postback inside update panel. As the postback inside updatepanel refreshes the content. So you need to do the following-
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_endRequest(function() {
// add your model binding code here
});
Protected Sub txtPctDown_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs)
Dim cf As New CommonFunctions
Dim txtPctDown As TextBox = cf.FindControlRecursive(Page.Master, "txtPctDown")
Dim lblReqdPctDown As Label = cf.FindControlRecursive(Page.Master, "lblReqdPctDown")
Dim lblDialog As Label = cf.FindControlRecursive(Page.Master, "lblDialog")
If IsNumeric(txtPctDown.Text) Then
If Convert.ToInt32(txtPctDown.Text) < Convert.ToInt32(lblReqdPctDown.Text) Then
lblDialog.Text = "Per Cent Down must be greater than or equal to the requirement."
Else
Exit Sub
End If
Else
lblDialog.Text = "Per Cent Down must a number greater than or equal to the requirement."
End If
Page.ClientScript.RegisterClientScriptBlock(GetType(Page), "testScript", _
"$(document).ready(function() {" & _
"$('#dialog-modal').dialog();});", True)
End Sub
Private Sub ShowDialog(byval message as String, theControl as Control)
Dim theScript as String="showModalDialog('"+message+"')"
ScriptManager.RegisterClientScriptBlock(theControl, theControl.GetType(), UniqueID, theScript, true) End Sub
ProtectedSub txtPctDown_TextChanged(ByVal sender AsObject,ByVal e AsSystem.EventArgs) Dim cf AsNewCommonFunctions Dim txtPctDown AsTextBox= cf.FindControlRecursive(Page.Master,"txtPctDown") Dim lblReqdPctDown AsLabel= cf.FindControlRecursive(Page.Master,"lblReqdPctDown") Dim txtMessage as String
IfIsNumeric(txtPctDown.Text)Then IfConvert.ToInt32(txtPctDown.Text)<Convert.ToInt32(lblReqdPctDown.Text)Then txtMessage="Per Cent Down must be greater than or equal to the requirement." Else ExitSub EndIf Else txtMessage="Per Cent Down must a number greater than or equal to the requirement." EndIf
ShowDialog(txtMessage,UpdatePanel1)
End Sub
sg48asp
Member
322 Points
475 Posts
Modal Dialog not triggered by control within update panel
Mar 27, 2011 11:55 AM|LINK
I have a textbox txtPctDown inside an update panel. On textchanged, a sub is called that does a calculation and puts the result in to a label in a modal dialog. When the text changes, the sub is reached but the modal dialog doesn't appear. if I eliminate the UpdatePanel then everything works fine. I tried with an without using the textchanged as a trigger.
How do I get the modal dialog to appear when the text changes?
Thank you.
<%@ Page Title="Add Offer" Language="VB" MasterPageFile="~/Protected/twocolfixed.master" AutoEventWireup="false" CodeFile="AddOffer.aspx.vb" Inherits="Protected_AddOffer" EnableTheming="true" Theme="PrimaryTheme" %> <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %> <%@ MasterType virtualPath="~/protected/twocolfixed.master"%> <%@ Register TagPrefix="user" TagName="UsersInDeal" Src="~/User_Controls/PeopleInDeal.ascx"%> <%@ Register TagPrefix="user3" TagName="Alerts" Src="~/User_Controls/Alerts.ascx" %> <%@ Register TagPrefix="user4" TagName="Separator" Src="~/User_Controls/Separator.ascx" %> <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder_Head" Runat="Server" > <style type="text/css"> /*demo page css*/ .demoHeaders { margin-top: 2em; } #dialog-modal {display:none;} #dialog-modal {padding: .4em 1em .4em 20px;text-decoration: none;position: relative;} #dialog-modal span.ui-icon {margin: 0 5px 0 0;position: absolute;left: .2em;top: 50%;margin-top: -8px;} ul#icons {margin: 0; padding: 0;} ul#icons li {margin: 2px; position: relative; padding: 4px 0; cursor: pointer; float: left; list-style: none;} ul#icons span.ui-icon {float: left; margin: 0 4px;} .fuUpload1 { border:0px !important; height:37px; } .style1 { width: 229px; } </style> <script type="text/javascript" src="../js/jquery.fileinput.min.js"></script> <link rel="stylesheet" type="text/css" href="../Styles/fileinput.css" /> <script type="text/javascript"> $(document).ready(function () { $(".btnSubmit").button(); $(".fuUpload").fileinput(); $("#<%= txtLastViewedDate.ClientID %>").datepicker({ minDate: -365,maxDate:-1 }); }); </script> </asp:Content> <asp:Content ID="Content4" ContentPlaceHolderID="ContentPlaceHolder_Left" Runat="Server" > <div class="clear" style ="position:relative;float:left;margin-top:-43px;" > <user3:Alerts ID="ucAlerts" runat="server"/> <user4:Separator ID="ucSeparator" runat="server"/> <div class="clear"></div> <user:UsersInDeal ID="ucUsersInDeal" runat="server" /> </div> </asp:Content> <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder_Main" Runat="Server"> <asp:Label ID="lblMessage" runat="server" Text=""></asp:Label> <asp:Panel ID="pnlInsert" runat="server" Visible = "true" > <asp:Panel ID="pnlInsertPart1" runat="server"> <table width="700px"> <colgroup> <col /> <col width="350px" /> <col width="150px" /> </colgroup> <tr> <td><b>General</b></td> <td class="style1"> </td> <td> </td> </tr> <tr> <td > <asp:Label ID="lblMyRole_" CssClass="label" runat="server" Text="MyRole" Width="200" /></td> <td class="style1"> <asp:DropDownList ID="ddlSubmitRole" runat="server"> <asp:ListItem Value="None">--Select Role--</asp:ListItem> <asp:ListItem Value="Buyer1">Buyer</asp:ListItem> <asp:ListItem Value="BuyerAgent">Buyer Agent</asp:ListItem> </asp:DropDownList> </td> <td> <asp:RequiredFieldValidator ID="Rfv1" runat="server" ControlToValidate="ddlSubmitRole" ErrorMessage="Required" InitialValue="None" /> </td> </tr> <tr> <td>Buyer</td> <td class="style1"> <asp:TextBox ID="txtPurchaser1FName" runat="server" /> <asp:TextBox ID="txtPurchaser1LName" runat="server" /> <cc1:TextBoxWatermarkExtender ID="TextBoxWatermarkExtender2" runat="server" TargetControlID="txtPurchaser1FName" WatermarkCssClass="watermarked" WatermarkText="First Name" /> <cc1:TextBoxWatermarkExtender ID="TextBoxWatermarkExtender3" runat="server" TargetControlID="txtPurchaser1LName" WatermarkCssClass="watermarked" WatermarkText="Last Name" /> </td> <td> </td> </tr> <tr> <td>Buyer Email</td> <td class="style1"><asp:TextBox ID="txtPurchaser1Email" runat="server" /></td> <td><asp:RegularExpressionValidator ID="RegularExpressionValidator19" runat="server" ControlToValidate="txtPurchaser1EMail" CssClass="validationmessage" ErrorMessage="Email" ForeColor="White" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"> Must be valid email address</asp:RegularExpressionValidator><br /> <asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" ControlToValidate="txtPurchaser1Email" ErrorMessage="Required" /> </td> </tr> <tr> <td>Viewed</td> <td class="style1"> <asp:CheckBox ID="chkPropertyViewed" runat="server" Text="Property Has Been Viewed" AutoPostBack="true"/> </td> <td> </td> </tr> <tr> <td> </td> <td class="style1"><asp:TextBox ID="txtLastViewedDate" runat="server" AutoPostBack="true" Text="" Width="250px" cssclass="field" CausesValidation="false" /> <cc1:TextBoxWatermarkExtender ID="WatermarkExtender1" runat="server" TargetControlID="txtLastViewedDate" WatermarkCssClass="watermarked" WatermarkText="Enter date within past year." /> <br /></td> <td> </td> </tr> <tr> <td>Offer Amount</td> <td class="style1"><asp:TextBox ID="txtOfferAmount" runat="server" class="auto {aSign: '$', mNum: 8, mDec: 0, aPad: false}" /> [AskingPrice $<asp:Label ID="lblAskingPrice" runat="server" />] </td> <td> </td> </tr> </table> <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"> <Triggers> <asp:AsyncPostBackTrigger ControlID="txtPctDown" EventName="TextChanged" /> </Triggers> <ContentTemplate> <table > <colgroup> <col width="200px" /> <col width="350px" /> <col width="150px" /> </colgroup> <tr> <td> Down Payment (%) </td> <td> <asp:TextBox ID="txtPctDown" runat="server" OnTextChanged="txtPctDown_TextChanged" AutoPostBack="true" /> [Required Min Down : <asp:Label ID="lblReqdPctDown" runat="server" />%]<br /> </td> <td> </td> </tr> </table> </ContentTemplate> </asp:UpdatePanel> <table> <colgroup> <col width="200px" /> <col width="350px" /> <col width="150px" /> </colgroup> <tr> <td> Contingent On Financing * </td> <td> <asp:TextBox ID="txtFinancingConginency" runat="server" Text="Yes/No/Unsure" /> </td> <td> <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ControlToValidate="txtFinancingConginency" ErrorMessage="Contingent On Financing" /> </td> </tr> <tr> <td> <asp:Label ID="Label3" runat="server" CssClass="label" Text="Business Days For Attorney Review" /> </td> <td> <asp:DropDownList ID="ddlDays4AttyReview" runat="server"> <asp:ListItem Value="-">Select Days</asp:ListItem> <asp:ListItem Value="1">1</asp:ListItem> <asp:ListItem Value="2">2</asp:ListItem> <asp:ListItem Value="3">3</asp:ListItem> <asp:ListItem Value="4">4</asp:ListItem> <asp:ListItem Value="5">5</asp:ListItem> <asp:ListItem Value="6">6</asp:ListItem> <asp:ListItem Value="7">7</asp:ListItem> <asp:ListItem Value="8">8</asp:ListItem> <asp:ListItem Value="9">9</asp:ListItem> <asp:ListItem Value="10">10</asp:ListItem> <asp:ListItem Value="11">11</asp:ListItem> <asp:ListItem Value="12">12</asp:ListItem> <asp:ListItem Value="13">13</asp:ListItem> <asp:ListItem Value="14">14</asp:ListItem> <asp:ListItem Value="15">15</asp:ListItem> </asp:DropDownList> </td> <td> <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="ddlDays4AttyReview" ErrorMessage="Days for Attorney Review" InitialValue="-" /> <br /> </td> </tr> <tr> <td> Suggested Closing Date</td> <td> <asp:RadioButtonList ID="rblSCDType" runat="server" AutoPostBack="true" CausesValidation="false"> <asp:ListItem>ASAP</asp:ListItem> <asp:ListItem>Flexible</asp:ListItem> <asp:ListItem>On Specific Date</asp:ListItem> </asp:RadioButtonList> </td> <td> </td> </tr> <tr> <td> Closing Date Requested By Seller</td> <td> <asp:Label ID="lblSellerClosingDateRequest" runat="server" BackColor="#999999" CssClass="label" /> </td> <td> </td> </tr> <tr> <td> </td> <td> <asp:Panel ID="pnlSCDCalendar" runat="server"> <asp:TextBox ID="txtSCD" runat="server" CausesValidation="false" width="250px" /> <asp:ImageButton ID="ImageButtonSCD" runat="server" CausesValidation="false" ImageUrl="~/Images/Calendar_scheduleHS.png" /> <cc1:CalendarExtender ID="CalendarExtender2" runat="server" PopupButtonID="ImageButtonSCD" PopupPosition="Right" TargetControlID="txtSCD"> </cc1:CalendarExtender> <cc1:TextBoxWatermarkExtender ID="TextBoxWatermarkExtender1" runat="server" TargetControlID="txtSCD" WatermarkCssClass="watermarked" WatermarkText="Click calendar button to select date." /> </asp:Panel> </td> <td> </td> </tr> <tr> <td> Contingencies</td> <td> <asp:TextBox ID="txtContingencies" runat="server" Columns="50" Rows="5" TextMode="MultiLine" /> </td> <td> </td> </tr> <tr> <td style="height: 26px"> Pets</td> <td style="height: 26px"> <asp:TextBox ID="txtPets" runat="server" Columns="50" /> </td> <td style="height: 26px"> </td> </tr> <tr> <td> Second Home</td> <td> <asp:CheckBox ID="chkSecondHome" runat="server" Text="Yes, -this will be a second home." /> </td> <td> </td> </tr> <tr> <td> Notes</td> <td> <asp:TextBox ID="txtNotes" runat="server" Columns="50" Rows="5" TextMode="MultiLine" /> </td> <td> </td> </tr> <tr> <td> </td> <td> </td> <td> </td> </tr> <tr> <td> </td> <td> </td> <td> </td> </tr> <tr> <td> <b>Financials</b><img src="../Images/icons/AddOfferIcons/reqfinancial.png" alt="" /></td> <td> </td> <td> </td> </tr> <tr> <td> <asp:Label ID="lblSalaryP1" runat="server" Text="" /> </td> <td> <asp:TextBox ID="txtSalaryP1" runat="server" class="auto {aSign: '$', mNum: 7, mDec: 0, aPad: false}" /> </td> <td> </td> </tr> <tr> <td> <asp:Label ID="lblIncomeLastYearP1" runat="server" Text="" /> </td> <td> <asp:TextBox ID="txtIncomeLastYearP1" runat="server" class="auto {aSign: '$', mNum: 7, mDec: 0, aPad: false}" /> </td> <td> </td> </tr> <tr> <td> <asp:Label ID="lblIncomePreviousYearP1" runat="server" Text="" /> </td> <td> <asp:TextBox ID="txtIncomePreviousYearP1" runat="server" class="auto {aSign: '$', mNum: 7, mDec: 0, aPad: false}" /> </td> <td> </td> </tr> <tr> <td> <asp:Label ID="lblBonusLastYearP1" runat="server" /> </td> <td> <asp:TextBox ID="txtBonusLastYearP1" runat="server" class="auto {aSign: '$', mNum: 7, mDec: 0, aPad: false}" /> </td> <td> </td> </tr> <tr> <td> <asp:Label ID="lblBonusPreviousYearP1" runat="server" /> </td> <td> <asp:TextBox ID="txtBonusPreviousYearP1" runat="server" class="auto {aSign: '$', mNum: 7, mDec: 0, aPad: false}" /> </td> <td> </td> </tr> <tr> <td> Employment Status</td> <td> <asp:DropDownList ID="ddlEmploymentStatusP1" runat="server"> <asp:ListItem Value="None">--Select Status--</asp:ListItem> <asp:ListItem Value="Employed">Employed</asp:ListItem> <asp:ListItem Value="Self-Employed">Self-Employed</asp:ListItem> <asp:ListItem Value="Retired">Retired</asp:ListItem> <asp:ListItem Value="Unemployed">Unemployed</asp:ListItem> </asp:DropDownList> </td> <td> <asp:RequiredFieldValidator ID="RequiredFieldValidator11" runat="server" ControlToValidate="ddlEmploymentStatusP1" ErrorMessage="Required" InitialValue="None" /> </td> </tr> <tr> <td> Years At Current Position</td> <td> <asp:TextBox ID="txtYearsAtCurrentPositionP1" runat="server" /> </td> <td> <asp:RangeValidator ID="RangeValidator8" runat="server" ControlToValidate="txtYearsAtCurrentPositionP1" ErrorMessage="Enter numbers between 0 and 100." MaximumValue="100" MinimumValue="0" Type="Integer" /> </td> </tr> <tr> <td> </td> <td> </td> <td> </td> </tr> <tr> <td> Is there a:</td> <td> </td> <td> </td> </tr> <tr> <td> <asp:CheckBox ID="chkCoPurchaser" runat="server" AutoPostBack="true" Text="Co-Purchaser" /> </td> <td> <asp:CheckBox ID="chkGuarantor" runat="server" AutoPostBack="true" Text="Guarantor" /> </td> <td> </td> </tr> </table> <hr /> </asp:Panel> <asp:Panel ID="pnlInsertPurchaser2" runat="server"> <table width="700px"> <colgroup> <col width="200px" /> <col width="350px" /> <col width="150px" /> </colgroup> <tr> <td> </td> <td> </td> <td> </td> </tr> <tr> <td>Co-Purchaser</td> <td> <asp:TextBox ID="txtPurchaser2FName" runat="server" /> <asp:TextBox ID="txtPurchaser2LName" runat="server" /> <cc1:TextBoxWatermarkExtender ID="TextBoxWatermarkExtender4" runat="server" TargetControlID="txtPurchaser2FName" WatermarkCssClass="watermarked" WatermarkText="First Name" /> <cc1:TextBoxWatermarkExtender ID="TextBoxWatermarkExtender5" runat="server" TargetControlID="txtPurchaser2LName" WatermarkCssClass="watermarked" WatermarkText="Last Name" /> </td> <td> <asp:RequiredFieldValidator ID="rfvP2FName" runat="server" ControlToValidate="txtPurchaser2FName" ErrorMessage="Required" /><br /> <asp:RequiredFieldValidator ID="rfvP2LName" runat="server" ControlToValidate="txtPurchaser2LName" ErrorMessage="Required" /> </td> </tr> <tr> <td>Co-Purchaser Email</td> <td><asp:TextBox ID="txtPurchaser2Email" runat="server" /></td> <td><asp:RegularExpressionValidator ID="RegularExpressionValidator20" runat="server" ControlToValidate="txtPurchaser2Email" CssClass="validationmessage" ErrorMessage="Email" ForeColor="White" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"> Must be valid email address</asp:RegularExpressionValidator><br /> <asp:RequiredFieldValidator ID="rfvP2Email" runat="server" ControlToValidate="txtPurchaser2EMail" ErrorMessage="Required" /> </td> </tr> <tr> <td><asp:Label ID="lblSalaryP2" runat="server" Text=""/></td> <td> <asp:TextBox ID="txtSalaryP2" runat="server" class="auto {aSign: '$', mNum: 7, mDec: 0, aPad: false}" /> </td> <td> </td> </tr> <tr> <td><asp:Label ID="lblIncomeLastYearP2" runat="server" Text=""/></td> <td> <asp:TextBox ID="txtIncomeLastYearP2" runat="server" class="auto {aSign: '$', mNum: 7, mDec: 0, aPad: false}" /> </td> <td> </td> </tr> <tr> <td><asp:Label ID="lblIncomePreviousYearP2" runat="server" Text=""/></td> <td><asp:TextBox ID="txtIncomePreviousYearP2" runat="server" class="auto {aSign: '$', mNum: 7, mDec: 0, aPad: false}" /> </td> <td> </td> </tr> <tr> <td><asp:Label ID="lblBonusLastYearP2" runat="server"/></td> <td><asp:TextBox ID="txtBonusLastYearP2" runat="server" class="auto {aSign: '$', mNum: 7, mDec: 0, aPad: false}" /> </td> <td> </td> </tr> <tr> <td><asp:Label ID="lblBonusPreviousYearP2" runat="server"/></td> <td><asp:TextBox ID="txtBonusPreviousYearP2" runat="server" class="auto {aSign: '$', mNum: 7, mDec: 0, aPad: false}" /> </td> <td> </td> </tr> <tr> <td>Employment Status</td> <td> <asp:DropDownList ID="ddlEmploymentStatusP2" runat="server"> <asp:ListItem Value="None">--Select Status--</asp:ListItem> <asp:ListItem Value="Employed">Employed</asp:ListItem> <asp:ListItem Value="Self-Employed">Self-Employed</asp:ListItem> <asp:ListItem Value="Retired">Retired</asp:ListItem> <asp:ListItem Value="Unemployed">Unemployed</asp:ListItem> </asp:DropDownList> </td> <td> <asp:RequiredFieldValidator id="RequiredFieldValidator12" runat="server" ControlToValidate="ddlEmploymentStatusP2" InitialValue="None" ErrorMessage="Required" /> </td> </tr> <tr> <td>Years At Current Position</td> <td><asp:TextBox ID="txtYearsAtCurrentPositionP2" runat="server" /> </td> <td><asp:RangeValidator ID="RangeValidator13" runat="server" ControlToValidate="txtYearsAtCurrentPositionP2" ErrorMessage="Enter only integers." MinimumValue="0" MaximumValue="50" Type="Integer" /></td> </tr> </table> <hr /> </asp:Panel> <asp:Panel ID="pnlInsertGuarantor" runat="server"> <table> <colgroup> <col width="200px" /> <col width="300px" /> <col width="200px" /> </colgroup> <tr> <td> </td> <td> </td> <td> </td> </tr> <tr> <td>Guarantor</td> <td> <asp:TextBox ID="txtGuarantorFName" runat="server" /> <asp:TextBox ID="txtGuarantorLName" runat="server" /> <cc1:TextBoxWatermarkExtender ID="TextBoxWatermarkExtender6" runat="server" TargetControlID="txtGuarantorFName" WatermarkCssClass="watermarked" WatermarkText="First Name" /> <cc1:TextBoxWatermarkExtender ID="TextBoxWatermarkExtender7" runat="server" TargetControlID="txtGuarantorLName" WatermarkCssClass="watermarked" WatermarkText="Last Name" /> </td> <td> <asp:RequiredFieldValidator ID="rfvGFName" runat="server" ControlToValidate="txtGuarantorFName" ErrorMessage="Required" /><br /> <asp:RequiredFieldValidator ID="rfvGLName" runat="server" ControlToValidate="txtGuarantorLName" ErrorMessage="Required" /> </td> </tr> <tr> <td>Guarantor Email</td> <td><asp:TextBox ID="txtGuarantorEmail" runat="server" /></td> <td><asp:RegularExpressionValidator ID="RegularExpressionValidator21" runat="server" ControlToValidate="txtGuarantorEmail" CssClass="validationmessage" ErrorMessage="Email" ForeColor="White" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"> Must be valid email address</asp:RegularExpressionValidator><br /> <asp:RequiredFieldValidator ID="rfvGEMail" runat="server" ControlToValidate="txtGuarantorEMail" ErrorMessage="Required" /> </td> </tr> <tr> <td><asp:Label ID="lblSalaryG" runat="server" Text="Label"/></td> <td><asp:TextBox ID="txtSalaryG" runat="server" class="auto {aSign: '$', mNum: 7, mDec: 0, aPad: false}" /> </td> <td> </td> </tr> <tr> <td><asp:Label ID="lblIncomeLastYearG" runat="server" Text=""/></td> <td><asp:TextBox ID="txtIncomeLastYearG" runat="server" class="auto {aSign: '$', mNum: 7, mDec: 0, aPad: false}" /> </td> <td> </td> </tr> <tr> <td><asp:Label ID="lblIncomePreviousYearG" runat="server" Text=""/></td> <td><asp:TextBox ID="txtIncomePreviousYearG" runat="server" class="auto {aSign: '$', mNum: 7, mDec: 0, aPad: false}" /> </td> <td> </td> </tr> <tr> <td><asp:Label ID="lblBonusLastYearG" runat="server"/></td> <td><asp:TextBox ID="txtBonusLastYearG" runat="server" class="auto {aSign: '$', mNum: 7, mDec: 0, aPad: false}" /> </td> <td> </td> </tr> <tr> <td><asp:Label ID="lblBonusPreviousYearG" runat="server"/></td> <td><asp:TextBox ID="txtBonusPreviousYearG" runat="server" class="auto {aSign: '$', mNum: 7, mDec: 0, aPad: false}" /> </td> <td> </td> </tr> <tr> <td>Employment Status</td> <td> <asp:DropDownList ID="ddlEmploymentStatusG" runat="server"> <asp:ListItem Value="None">--Select Status--</asp:ListItem> <asp:ListItem Value="Employed">Employed</asp:ListItem> <asp:ListItem Value="Self-Employed">Self-Employed</asp:ListItem> <asp:ListItem Value="Retired">Retired</asp:ListItem> <asp:ListItem Value="Unemployed">Unemployed</asp:ListItem> </asp:DropDownList> </td> <td> <asp:RequiredFieldValidator id="RequiredFieldValidator13" runat="server" ControlToValidate="ddlEmploymentStatusG" InitialValue="None" ErrorMessage="Required" /> </td> </tr> <tr> <td>Years At Current Position</td> <td><asp:TextBox ID="txtYearsAtCurrentPositionG" runat="server" /> </td> <td><asp:RangeValidator ID="RangeValidator18" runat="server" ControlToValidate="txtYearsAtCurrentPositionG" ErrorMessage="Enter only integers." MinimumValue="0" MaximumValue="50" Type="Integer" /></td> </tr> <tr> <td> </td> <td> </td> <td> </td> </tr> </table> </asp:Panel> <asp:Panel ID="pnlRequiredDocuments" runat="server" BorderColor="DarkBlue"> <asp:Label ID="lblRequiredDocs_" runat="server" CssClass="label" Text="The Seller requires the following documents to be submitted with the offer. These can be uploaded below or from "/><a href="DealDocuments.aspx">DealDocuments</a> <div class="clear"></div> <asp:Panel ID="pnlPreApprovalLetter" runat="server"> <img src="../Images/icons/AddOfferIcons/reqdocument.png" alt="Pre-Approval Letter Required" /> <asp:Label ID="lblPreApproval" runat="server" CssClass="label" Text="Pre-Approval Letter"/> <div class="clear"></div> <asp:FileUpload ID="FileUpload1" runat="server" CssClass="fuUpload" /> </asp:Panel> <asp:Panel ID="pnlNetWorthStatement" runat="server"> <img src="../Images/icons/AddOfferIcons/reqdocument.png" alt="Net worth Statement Required" /> <asp:Label ID="lblNetWorth" runat="server" CssClass="label" Text="Net Worth Statement"/> <img alt="Must be signed" src="../Images/icons/ToDoCategories/signature.png" style="width: 35px; height: 30px" /> <asp:Label ID="Label2" runat="server" Text="(must be signed)" Style="font-size:0.9em;font-family:Arial,Verdana;" /> <div class="clear"></div> <asp:FileUpload ID="FileUpload2" runat="server" CssClass="fuUpload" /> </asp:Panel> </asp:Panel> <div style="position:relative;margin-top:10px;"> <asp:Button ID="btnSubmit" runat="server" Text="Submit" cssclass="btnSubmit" Font-Bold="false" Font-Size="0.9em" Height="2.4em" Width="10em" /> </div> </asp:Panel> <div class="clear" style="margin-bottom:20px;"></div> <!-- Dialog NOTE: Dialog is not generated by UI in this demo so it can be visually styled in themeroller--> <!-- ui-dialog --> <div id="dialog-modal" title="SDS Alert" > <asp:Label ID="lblDialog" runat="server" Text="Label" /> </div> <asp:SqlDataSource ID="dsAddOffer" runat="server" ConnectionString="<%$ ConnectionStrings:DB_6056_securedeConnectionString %>"> </asp:SqlDataSource> <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtPctDown" ErrorMessage="Down Payment Pct" Display="None" /> </asp:Content>asteranup
All-Star
30184 Points
4906 Posts
Re: Modal Dialog not triggered by control within update panel
Mar 27, 2011 02:03 PM|LINK
Hi,
Any javascript code that is added for some control inside updatepanel does not work after first postback inside update panel. As the postback inside updatepanel refreshes the content. So you need to do the following-
var prm = Sys.WebForms.PageRequestManager.getInstance(); prm.add_endRequest(function() { // add your model binding code here });See below-
<html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>Untitled Page</title> <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.5.js" type="text/javascript"></script> <script type="text/javascript"> $(document).ready(function() { Sys.WebForms.PageRequestManager.getInstance().add_endRequest(bindClick); bindClick(); }); function bindClick() { $("input[id*=Button1]").click(function() { alert("hi"); }); } </script> </head> <body> <form id="form1" runat="server"> <asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager> <asp:UpdatePanel ID="UpdatePanel1" runat="server"> <ContentTemplate> <asp:Button ID="Button1" runat="server" Text="Button" /> </ContentTemplate> </asp:UpdatePanel> </form> </body> </html>Anup Das Gupta
Mark as Answer if you feel so. Visit My Blog
sg48asp
Member
322 Points
475 Posts
Re: Modal Dialog not triggered by control within update panel
Mar 27, 2011 03:11 PM|LINK
Thanks for responding.
Not sure I understand what to do next.
My code that launches the modal dialog is in the code behing page ( see bottom of original post).
So what do I put where you said to enter the modal code in the jquery script block? - (Sorry-I am a jquery beginner.)
sg48asp
Member
322 Points
475 Posts
Re: Modal Dialog not triggered by control within update panel
Mar 27, 2011 03:14 PM|LINK
This is what is in my code behind
Protected Sub txtPctDown_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Dim cf As New CommonFunctions Dim txtPctDown As TextBox = cf.FindControlRecursive(Page.Master, "txtPctDown") Dim lblReqdPctDown As Label = cf.FindControlRecursive(Page.Master, "lblReqdPctDown") Dim lblDialog As Label = cf.FindControlRecursive(Page.Master, "lblDialog") If IsNumeric(txtPctDown.Text) Then If Convert.ToInt32(txtPctDown.Text) < Convert.ToInt32(lblReqdPctDown.Text) Then lblDialog.Text = "Per Cent Down must be greater than or equal to the requirement." Else Exit Sub End If Else lblDialog.Text = "Per Cent Down must a number greater than or equal to the requirement." End If Page.ClientScript.RegisterClientScriptBlock(GetType(Page), "testScript", _ "$(document).ready(function() {" & _ "$('#dialog-modal').dialog();});", True) End Subasteranup
All-Star
30184 Points
4906 Posts
Re: Modal Dialog not triggered by control within update panel
Mar 27, 2011 03:22 PM|LINK
Ok,
Just a guess. Try replacing-
with
Anup Das Gupta
Mark as Answer if you feel so. Visit My Blog
sg48asp
Member
322 Points
475 Posts
Re: Modal Dialog not triggered by control within update panel
Mar 27, 2011 03:46 PM|LINK
I tried below but Intellisense said 'overload failed because no accessible RegisterClientScriptBlock acceps
this number of arguments.
I'm thinking that the approach lies in not doing anything in codebehind and doing it in the jquery script block.
ScriptManager.RegisterClientScriptBlock(GetType(Page), "testScript", _ "$(document).ready(function() {" & _ "$('#dialog-modal').dialog();});", True)AdhemarSGV
Member
8 Points
4 Posts
Re: Modal Dialog not triggered by control within update panel
Jul 01, 2011 08:23 PM|LINK
Try this:
function createModalDialog() { $("#dialog-modal").dialog({ autoOpen: false, height: 160, width: 380, resizable: false, modal: true, buttons: { "OK": function () { $(this).dialog("close"); } } }); } function showModalDialog(s) { //Set the text!!! $("#txtMessage").text(s); //show dialog!!! $("#dialog-Modal").dialog("open"); } $(document).ready(function () { //Add this to your .ready function createModalDialog(); });In your code-behind:
Private Sub ShowDialog(byval message as String, theControl as Control) Dim theScript as String="showModalDialog('"+message+"')" ScriptManager.RegisterClientScriptBlock(theControl, theControl.GetType(), UniqueID, theScript, true)End Sub
Always works for me!!!