2011-02-05 2 views
158

웹 페이지에 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뿐 아니라 최신 버전의 Firefox에서이 작업을 시도했습니다.이 작업은 .NET Framework 버전 4와 함께 ASP.Net을 실행하는 Windows Server 2003 R2 시스템에서 제공됩니다.

도울 수 있습니다.

+0

여러분, 답변이 이미 주어지고 선택되었으므로이 질문에 계속 대답 할 필요가 없습니다. – TGP1994

답변

340

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

예 :

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

글쎄, 고쳐 준 것 같아. 고마워. 이유를 설명해 주시겠습니까? – TGP1994

+2

@ TGP1994 : AutoPostBack 속성은 자동 포스트 백이 발생하는지 여부를 설정하거나 반환하는 데 사용됩니다. –

+1

드롭 다운 목록을 선택할 때 목록의 첫 번째 값으로 이동합니다. –

72

DropDownList에 AutoPostBack="True"을 설정해보십시오.

38

내가 그 나이가 조금 더 게시물을 알고 있지만, 여전히 나는 위의 대답에 뭔가를 추가하고 싶습니다.

드롭 다운 목록에서 두 개 이상의 항목 중 ""이 중복되거나 동일한 경우가있을 수 있습니다. 그래서, 당신이 트리거 목록 항목에는 반복 값이 없는지 확인

1

당신이 코드를 작성했습니다 무엇 insted 이벤트 " onselectedindexchanged"당신은 예를 들어, 드롭 다운리스트 컨트롤의의 SelectedIndexChanged 이벤트에 직접 쓸 수 있습니다

protected void ddlleavetype_SelectedIndexChanged(object sender, EventArgs e) 
{ 
*************** 
*********** 
**** 
} 
+0

aspx 페이지의 AutoEventWireup 설정이 true 인 경우에만, 그렇지 않은 경우 원래 예제대로 수동으로해야합니다. –

10

재산 ViewStateMode="Enabled"을 추가하고 드롭 EnableViewState="true" 그리고 AutoPostBack="true" 날, 나는 페이지 속성이에 비동기 = "true"를 aspx 페이지 속성이 추가 된 답변을 들어 자세한 내용 click here

1

를 들어

을 DropDownList로 내 문제를 해결했다.
<%@ 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> 
2

는 또한 페이지가 유효한지 확인 내 업데이트 패널의 구조입니다. 당신은 (F12)

콘솔 탭에서 브라우저 개발자 도구에서이를 확인 올바른 대상/프레임을 선택하고 양식을 제출하지 않을 페이지가 유효하지 않은 경우 [Page_IsValid] 속성

를 확인하실 수 있습니다 따라서 이벤트를 발생시키지 않습니다.

+0

HerbalMart에 투표하십시오. 제 경우에는 페이지가 유효하지 않았지만 내 페이지에서 Telerik RadAjaxManager를 사용했기 때문에 브라우저에서 테스트했을 때 오류가 표시되지 않았습니다. RadAjaxManager 전체를 주석 처리했을 때 오류가 발생했으며 해결할 수있었습니다. – user2721607