Не удается получить элемент управления DropDownList в UpdatePannel - PullRequest
0 голосов
/ 01 ноября 2018

У меня есть UpdatePannel на моей странице ASPX, внутри которого есть некоторые элементы управления, среди которых есть DropDownList. Мне нужно удалить ListItem из DropDownList в коде, когда я переключаюсь в режим редактирования, используя следующий метод:

 Protected Sub dvApplicationDetail_ModeChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DetailsViewModeEventArgs) Handles dvApplicationDetail.ModeChanging
    Dim Result As DataSet
    Try
        If e.NewMode = DetailsViewMode.Insert Then
            dvApplicationDetail.ChangeMode(DetailsViewMode.ReadOnly)
        ElseIf e.NewMode = DetailsViewMode.Edit Then
            dvApplicationDetail.ChangeMode(DetailsViewMode.Edit)

            Dim PaymentReminders = CType(Me.dvApplicationDetail.FindControl("PayReminders"), DropDownList)

        End If
End Sub

Но я не могу получить DropDownList, используя этот метод, так как Panel еще не загружена:

Dim PaymentReminders = CType(Me.dvApplicationDetail.FindControl("PayReminders"), DropDownList)

Вот страница ASPX, которую я имею для этого:

<asp:UpdatePanel ID="updatePanel5" runat="server">
                                                                <ContentTemplate>
                                                                    <asp:DetailsView ID="dvApplicationDetail" runat="server" CssClass="TbItemsVal" Width="100%"
                                                                        AutoGenerateEditButton="True" AutoGenerateRows="False" BackColor="White">
                                                                        <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                                                                        <EditRowStyle Font-Bold="True" CssClass="TbItems" />
                                                                        <RowStyle BackColor="#EEE9CB" ForeColor="#333333" />
                                                                        <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
                                                                        <Fields>
                                                                                                                                                            <asp:TemplateField Visible="false">
                                                                                <headertemplate> 
                                                                                    Insured Accepts the<br />
                                                                                    <a href="#">Electronic Terms and Conditions?</a>
                                                                                </headertemplate>                                                                                    
                                                                                <ItemTemplate>
                                                                                    <%# Eval("AcceptTerms") %>                                                                                                                                                                               
                                                                                </ItemTemplate>
                                                                                <EditItemTemplate>
                                                                                    <%--<asp:TextBox ID="AcceptTerms" runat="server" Text='' />--%>
                                                                                    <asp:DropDownList ID="AcceptTerms" runat="server" onchange="changePaymentReminder()" Text='<%# Eval("AcceptTerms") %>' AutoPostBack="true" OnSelectedIndexChanged="AcceptTerms_SelectedIndexChanged">
                                                                                        <asp:ListItem Text="Select" Value="Select"></asp:ListItem>
                                                                                        <asp:ListItem Text="Yes" Value="Yes"></asp:ListItem>
                                                                                        <asp:ListItem Text="No" Value="No"></asp:ListItem>
                                                                                    </asp:DropDownList>
                                                                                    <%--<asp:RegularExpressionValidator ID="REVAcceptTerms" runat="server" ControlToValidate="AcceptTerms" />--%>
                                                                                </EditItemTemplate>
                                                                                <HeaderStyle Font-Bold="True" />
                                                                                <ItemStyle Width="61%" />
                                                                            </asp:TemplateField>

                                                                            <asp:TemplateField HeaderText="Payment Reminders">                                                                                  
                                                                                <ItemTemplate> 
                                                                                    <%# Eval("B28_EMAIL_FLAG") %>                                                                                        
                                                                                </ItemTemplate>
                                                                                <EditItemTemplate>
                                                                                    <%--<asp:TextBox ID="AcceptTerms" runat="server" Text='' />--%>
                                                                                    <asp:DropDownList ID="PayReminders" runat="server" Text='<%# Eval("B28_EMAIL_FLAG") %>'>
                                                                                        <asp:ListItem Text="Select" Value="Select"></asp:ListItem>
                                                                                        <asp:ListItem Text="Text" Value="Text"></asp:ListItem>
                                                                                        <asp:ListItem Text="Email" Value="Email"></asp:ListItem>  
                                                                                        <asp:ListItem Text="Text&Email" Value="Text&Email"></asp:ListItem> 
                                                                                        <asp:ListItem Text="Declined" Value="Declined"></asp:ListItem>  
                                                                                    </asp:DropDownList>
                                                                                    <div style="vertical-align:top;display:inline-block;">
                                                                                        <table>
                                                                                            <tr>
                                                                                                <td></td>
                                                                                                <td><img id="imgWait" runat="server" src="../../Images/CircleBall.gif" style="display: none; text-align: center;" alt="" />
                                                                                                    <asp:Label ID="LblMsg" runat="server" BorderStyle="None" Width="215px" Font-Size="12px" ForeColor="Red" ></asp:Label></td>
                                                                                            </tr>
                                                                                        </table>
                                                                                    </div>
                                                                                    <%--<asp:CompareValidator id="CompareFieldValidator1" runat="server" ForeColor="Red" ControlToValidate="PayReminders" ValueToCompare="Select" Type="Integer" Operator="NotEqual" ErrorMessage="Please select a payment reminder type"></asp:CompareValidator >--%>
                                                                                </EditItemTemplate>
                                                                                <HeaderStyle Font-Bold="True" />
                                                                                <ItemStyle Width="61%" />
                                                                            </asp:TemplateField>
                                                                        </Fields>
                                                                        <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                                                                        <AlternatingRowStyle BackColor="WhiteSmoke" ForeColor="#284775" />
                                                                        <CommandRowStyle CssClass="btnmain" HorizontalAlign="Center" Width="20px" Wrap="True"
                                                                            BorderStyle="Solid" BorderWidth="2px" />
                                                                    </asp:DetailsView>
                                                                    <asp:HiddenField ID="hidOrigEmail" runat="server" />
                                                                    <asp:Panel ID="PnlContactUpdateError" HorizontalAlign="Center" runat="server">
                                                                        <asp:Label ID="LblContactUpdateError" runat="server" ForeColor="Red"></asp:Label>
                                                                    </asp:Panel>
                                                                </ContentTemplate>
                                                            </asp:UpdatePanel>

Я также пытался использовать javasciprt для этого, используя этот скрипт:

var prddl = document.getElementById('ctl00_ContentPlaceHolder2_dvApplicationDetail_PayReminders');
    $(window).bind("load", function () {
        prddl.remove(4);
    });

Но шансов нет! У вас есть идеи, пожалуйста?

Заранее спасибо.

1 Ответ

0 голосов
/ 25 декабря 2018

Мне удалось решить эту проблему, и я хотел бы поделиться с вами решением. Решением было просто добавить код, чтобы получить DropDownList внутри функции Prerender () страницы, поскольку это последнее событие, которое вызывается перед визуализацией страницы.

Спасибо,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...