[asp.net] DropDownList의 SelectedIndexChanged 이벤트가 발생하지 않습니다

내 웹 페이지에 DropDownList 객체가 있습니다. 클릭하고 다른 값을 선택하면 SelectedIndexChanged이벤트와 연결된 기능이 있어도 아무 일도 일어나지 않습니다 .

먼저 실제 객체의 HTML 코드 :

<asp:DropDownList ID="logList" runat="server"
       onselectedindexchanged="itemSelected">
</asp:DropDownList>

그리고 이것은 그 기능입니다 itemSelected.

protected void itemSelected(object sender, EventArgs e)
{
    Response.Write("Getting clicked; " + sender.GetType().ToString());
    FileInfo selectedfile;
    Response.Write("<script>alert('Hello')</script>");
    foreach (FileInfo file in logs)
    {
        if (file.Name == logList.Items[logList.SelectedIndex].Text)
        {
            Response.Write("<script>alert('Hello')</script>");
        }
    }
}

응답이 나타나지 않으며 JavaScript의 해당 부분이 실행되지 않습니다. Internet Explorer 8은 물론 최신 3.6 버전의 Firefox에서이 기능을 사용해 보았습니다. Windows Server 2003 R2 컴퓨터에서 .NET Framework 버전 4로 ASP.NET을 실행하고 있습니다.



답변

DropDownList AutoPostBack속성을 true로 설정하십시오 .

예 :

<asp:DropDownList ID="logList" runat="server" AutoPostBack="True"
        onselectedindexchanged="itemSelected">
    </asp:DropDownList>


답변

AutoPostBack="True"DropDownList에서 설정 을 시도 하십시오.


답변

나는 조금 오래된 게시물을 알고 있지만 여전히 위의 답변에 무언가를 추가하고 싶습니다.

드롭 다운 목록에있는 둘 이상의 항목 의 ” “이 복제 / 동일한 상황이있을 수 있습니다 . 따라서이 ” onselectedindexchanged “이벤트 를 트리거하기 위해 목록 항목에 반복되는 값이 없는지 확인하십시오.


답변

부동산 추가 ViewStateMode="Enabled"하고 EnableViewState="true"
그리고 AutoPostBack="true"드롭을 DropDownList로


답변

또한 페이지가 유효한지 확인하십시오. 브라우저 개발자 도구 (F12)에서이를 확인할 수 있습니다.

콘솔 탭에서 올바른 대상 / 프레임을 선택하고 [Page_IsValid] 속성을 확인하십시오.

페이지가 유효하지 않으면 양식이 제출되지 않으므로 이벤트가 발생하지 않습니다.


답변

나에게 대답은 aspx 페이지 속성이었다 .Async = “true”를 페이지 속성에 추가하면 문제가 해결되었다.

<%@ Page Language="C#" MasterPageFile="~/MasterPage/Reports.Master".....
    AutoEventWireup="true" Async="true" %>

이것은 내 업데이트 패널의 구조입니다

<div>
  <asp:UpdatePanel ID="updt" runat="server">
    <ContentTemplate>

      <asp:DropDownList ID="id" runat="server" AutoPostBack="true"        onselectedindexchanged="your server side function" />

   </ContentTemplate>
  </asp:UpdatePanel>
</div>


답변

작성한 것 대신 드롭 다운 목록 컨트롤의 SelectedIndexChanged 이벤트에 직접 쓸 수 있습니다 (예 :

protected void ddlleavetype_SelectedIndexChanged(object sender, EventArgs e)
{
 //code goes here
}