ASP.NET DropDownList не обновляется, несмотря на DataBind (и показывает новые данные на первом этапе) - PullRequest
1 голос
/ 13 января 2011

Это мои настройки: у меня есть выпадающий список людей и кнопка ссылки рядом с ним, чтобы добавить человека. Кнопка Link делает панель обновления появляется. При нажатии кнопки «Сохранить» я хочу сохранить данные и выбрать нового человека в раскрывающемся списке. Насколько я могу сказать, я сделал это правильно. После сохранения данных я обновляю выпадающий список, беру значение нового человека и устанавливаю его в качестве выбранного значения. При переходе он показывает ddl с выбранным новым человеком и новым человеком! НО, когда страница возвращается, ddl остается неизменным, т.е. НЕ обновляется. Я думал, что это может быть что-то с панелью обновления, но у меня есть аналогичные настройки для работы на другой странице! Он также работает на вложенной панели обновления (не показано в следующем коде). Можете ли вы вспомнить, почему происходит этот «обман»?

Вот часть моего кода. Извини, что так долго. Спасибо за вашу помощь !!

   public void AddRequestor_Click(object sender, ImageClickEventArgs e)
    {
        pnlNewRequestor.Style.Add("display", "none"); //regular panel
        ibSubmitTask.Enabled = true;
        ibSubmitTaskCancel.Enabled = true;
        if (!((ImageButton)sender).ID.Contains("Cancel"))
        {
            SaveRequestor();
            Functions.BindList(ddlRequestors, "Requestor", "spGetRequestors", true);
            string newRequestor = txtRequestorLastName.Text + ", " + txtRequestorFirstName.Text;
            ddlRequestors.ClearSelection();
            ddlRequestors.Items.FindByText(newRequestor).Selected = true;
        }

//ASPX Code
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" ControlToValidate="ddlRequestors" InitialValue=""
ErrorMessage="*Required" CssClass="ErrorText"  ValidationGroup="valNewTask" Display="Dynamic" runat="server" />
  <asp:LinkButton ID="LinkButton1" Text="Add New Requestor" CssClass="SmallerText" OnClientClick="NoPopup();" OnClick="NewRequestor_Click" runat="server"></asp:LinkButton>         
</td>
</tr>
<!-- Add New Requestor Update Panel -->
<tr id="tr1" class="HideXXX" runat="server">
<td></td>
<td colspan="2" class="LeftPadding">
<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<asp:Panel ID="Panel1" CssClass="AddNewPanel Hide" runat="server">
    <table width="100%">
         <tr>
            <td class="SectionTitle" colspan="3"><asp:Label ID="Label1" Text="Add New Requestor" runat="server"></asp:Label>
                <hr class="hrSectionTitle" />
            </td>
         </tr>
         <tr id="tr2" class="Hide" runat="server">
           <td></td>
           <td class="LeftPadding"><asp:Label ID="Label2" CssClass="ErrorTextLarge"  runat="server"></asp:Label></td>
         </tr>
         <tr>
            <td><asp:Label ID="Label3" Text="First Name:" runat="server"></asp:Label> </td>
            <td><asp:TextBox ID="TextBox1" CssClass="TextBox DefaultFont" OnFocus="this.className='TextBoxFocus DefaultFont'" onBlur="this.className='TextBox DefaultFont'" runat="server"></asp:TextBox>
                <asp:RequiredFieldValidator ID="RequiredFieldValidator2" ControlToValidate="txtRequestorFirstName" 
                     ErrorMessage="*Required" CssClass="ErrorText"  ValidationGroup="valNewRequestor" Display="Dynamic" runat="server" />
            </td>
        </tr>
        <tr>
            <td><asp:Label ID="Label4" Text="Last Name:" runat="server"></asp:Label> </td>
            <td><asp:TextBox ID="TextBox2" CssClass="TextBox DefaultFont" OnFocus="this.className='TextBoxFocus DefaultFont'" onBlur="this.className='TextBox DefaultFont'" runat="server"></asp:TextBox>
                <asp:RequiredFieldValidator ID="RequiredFieldValidator3" ControlToValidate="txtRequestorLastName" 
                     ErrorMessage="*Required" CssClass="ErrorText"  ValidationGroup="valNewRequestor" Display="Dynamic" runat="server" />
            </td>
        </tr>                                                             
        <tr>
            <td></td>
            <td colspan="2">    
                <asp:ImageButton ID="ImageButton1" ImageUrl="~/Images/Button-AddRequestor.jpg" CausesValidation="true" ValidationGroup="valNewRequestor" OnClientClick="NoPopup();" OnClick="AddRequestor_Click" runat="server" />
                <asp:ImageButton ID="ImageButton2" ImageUrl="~/Images/Button-Cancel-Darker.jpg" CausesValidation="false" OnClientClick="NoPopup();" OnClick="AddRequestor_Click" runat="server" />
            </td>

        </tr>

    </table>
</asp:Panel>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="lbNewRequestor" EventName="Click" />
<asp:AsyncPostBackTrigger ControlID="ibAddRequestor" EventName="Click" />
<asp:AsyncPostBackTrigger ControlID="ibAddRequestorCancel" EventName="Click" />
</Triggers>
</asp:UpdatePanel>
</td>
</tr>

1 Ответ

0 голосов
/ 13 мая 2011

У меня был похожий вопрос. Исправлено, вручную добавляя новый элемент списка в выпадающий список вместо повторного связывания ...

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