Раскрывающийся список не вызывает SelectedIndexChanged - PullRequest
4 голосов
/ 09 ноября 2010

У меня есть выпадающий список (dr1), который должен запускать обновление dr2, не влияя на dr3. Проблема в том, что dr1 запускает обновление, но не входит в dr1_SelectedIndexChanged. Я знаю это потому, что метка не меняется и пауза не происходит

Вот мой HTML-код:

<form runat="server">
<asp:ScriptManager ID="sm" runat="server" />
<asp:UpdateProgress ID="UpdateProgress1" runat="server" DisplayAfter="5">
    <ProgressTemplate>
        <span style="color: Red">Updating.....</span>
    </ProgressTemplate>
</asp:UpdateProgress>
<asp:DropDownList ID="dr1" AutoPostBack="true" OnSelectedIndexChanged="dr1_SelectedIndexChanged" runat="server" />
<asp:UpdatePanel ID="updpnl" runat="server">
    <ContentTemplate>
        <asp:DropDownList ID="dr2" runat="server" />
        <asp:Label ID="lbl" runat="server" />
    </ContentTemplate>
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="dr1" EventName="SelectedIndexChanged" />
    </Triggers>
</asp:UpdatePanel>
<asp:DropDownList ID="dr3" runat="server" />
</form>

и мой код:

void Page_Load()
        {
            if (!IsPostBack)
            {
                java.Text = "<script language=\"JavaScript1.2\" type=\"text/javascript\">var sess = \"" + Session["username"] + "\";var user = \"" + Request.ServerVariables["LOGON_USER"].Replace("\\", "\\\\") + "\";</script>";
                dr1.Items.Clear();
                dr2.Items.Clear();
                dr3.Items.Clear();
                dr1.Items.Add("");
                dr1.Items.Add("A");
                dr1.Items.Add("B");
                dr1.Items.Add("C");
                dr1.Items.Add("D");
                dr3.Items.Add("");
                dr3.Items.Add("Allo");
                dr3.Items.Add("Bonjour");
                dr3.Items.Add("Ola");
            }
        }

        protected void dr1_SelectedIndexChanged(Object sender, EventArgs e)
        {
            System.Threading.Thread.Sleep(5000);
            lbl.Text = DateTime.Now.ToString();
            dr2.Items.Clear();
            dr2.Items.Add("");
            for (int i = 1; i <= 4; i++)
                dr2.Items.Add(dr1.SelectedValue + i);
        }

Я надеюсь, что кто-то может мне помочь

Спасибо

Ответы [ 3 ]

2 голосов
/ 09 ноября 2010

Попробуйте изменить эту строку
<asp:AsyncPostBackTrigger ControlID="dr1" EventName="SelectedIndexChanged" />

И удалите атрибут EventName="SelectedIndexChanged"

0 голосов
/ 09 ноября 2010

Попробуйте обернуть все в панель обновления и установить UpdateMode="Always"

панели обновления
0 голосов
/ 09 ноября 2010

Наконец-то это сработало. После удаления кода и повторного добавления всего, все заработало.

Я также удалил dll и перестроил его. Кажется, это помогло.

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