2012-10-30 3 views
1

제목에 문제가 설명되어 있습니다. ListBox의 AutoPostBack 속성을 false로 설정하면 포스트 백이 발생하지만 기본적으로 그렇게해야합니다. ListBox 선택 모드가 multiple로 설정되었습니다.ListBox에 대해 AutoPostBack이 false로 설정된 경우 ListBox 선택 변경이 포스트 백을 수행합니다.

다른 배경이 있지만 question과 비슷합니다.

무엇이 누락 되었습니까? 이 문제가 잘 알려진 문제입니까?

여기 영문 페이지의 :

는 정확한 코드를

편집을해야하는 경우 가 알려주세요, 회신 주셔서 감사합니다. Codebehind는이 페이지가 리다이렉션의 대상이기 때문에 훨씬 큽니다. 거기에서 추가 정보가 필요한지 알려주십시오.

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ReportsPreviewViewAddParams.aspx.cs" Inherits="Admin_ReportsPreviewViewAddParams" %> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
</head> 
<body> 
    <form runat="server"> 

     <asp:HiddenField ID="SqlSelect" runat="server" /> 
     <asp:HiddenField ID="SqlColumnSize" runat="server" /> 
     <asp:HiddenField ID="SqlGroup" runat="server" /> 
     <asp:HiddenField ID="SqlOrder" runat="server" /> 
     <asp:HiddenField ID="PageSize" runat="server" /> 
     <asp:HiddenField ID="SumColumns" runat="server" /> 

     <asp:Repeater ID="RepeaterInput" runat="server" OnItemDataBound="OnRepeaterItemDataBound" > 
      <HeaderTemplate> 
       <table> 
       <tr><th> 
        <asp:Label ID="LabelHeader" runat="server" Text='<%# Webcom.Configurator.Core.MLPersistentManager.GetKeyValue("Admin.Reports.EnterParams") %>' /> 
       </th></tr> 
      </HeaderTemplate> 
      <ItemTemplate> 
       <tr> 
        <td> 
         <asp:TextBox ID="TextBoxValueOne" runat="server" AutoPostBack="false" /> 
         <asp:ListBox ID="ListBoxControlOne" runat="server" AutoPostBack="false" /> 
        </td> 
        <td><asp:Label ID="LabelOperatorOne" runat="server" /></td> 
        <td><asp:Label ID="LabelColumnName" runat="server" /></td> 
        <td><asp:Label ID="LabelOperatorTwo" runat="server" /></td> 
        <td> 
         <asp:TextBox ID="TextBoxValueTwo" runat="server" AutoPostBack="false" /> 
         <asp:ListBox ID="ListBoxControlTwo" runat="server" AutoPostBack="false" /> 
        </td> 
       </tr> 
      </ItemTemplate> 
      <FooterTemplate> 
       </table> 
      </FooterTemplate> 
     </asp:Repeater> 

     <asp:Button ID="buttonSubmit" runat="server" Visible="true" OnClick="OnSubmit" /> 

    </form> 
</body> 
</html> 
+2

코드/마크 업을 보여주세요. – IrishChieftain

+0

@Cpba 귀하의 코드를 보여주십시오. – freebird

+0

코드 괴물이 배가 고프다. 코드를 알려줘. nom nom nom. – peroija

답변

0

중계기에는 중계기 내의 컨트롤에서 발생하는 자동 포착을 추적하는 방법이 없습니다.

Handling autopostbacks within a repeater

당신 수 (페이지 컨트롤이 만들어 졌는지 후) 아마도 페이지로드 방법에서는 코드 숨김 페이지 라이프 사이클 초기에 AutoPostBack 속성을 초기화하려고 :

이 당신에게 단서를 제공 할 수 있습니다
ListBox ListBoxControlOne = (ListBox)RepeaterInput.FindControl("ListBoxControlOne"); 
ListBoxControlOne.AutoPostBack = false; 
+0

붙여 넣기에 문제가 있습니다. (FindControl() 내에서 따옴표로만) 이것을 시도했지만 null 참조 예외가 발생합니다. 나는 "ListBoxControlOne"이 RepeaterItem에서만 도달 할 수 있어야한다고 생각 했습니까? 내가 맞습니까? 또한 리피터 데이터 바인딩을 초기화 단계로 이동하거나 OnItemDataBound 핸들러에서 AutoPostBack 설정을 false로 설정하려고했지만 아무 것도 작동하지 않습니다. 감사합니다. –

+0

여기에 시도한 내용이 해킹 될 것으로 생각합니다. 페이지 autopostback 속성으로 재생 했습니까? – IrishChieftain

+0

아니요. 나는 페이지 클래스에 하나가 있다는 것을 몰랐다. 이 중계기에 관한 유일한 것은 바인딩 된 소스입니다. PreviousPage의 다른 중계기 (페이지가 리다이렉션하는 데 사용되기 때문에)를 사용하고 일부 항목 (일부 기준)을 모음으로 추출합니다. 그런 다음이 페이지 반복기를 컬렉션에 바인딩하고 OnItemDataBound에서 DataItem과 관련된 항목의 컨트롤 속성을 설정합니다 (RepeaterItem도 마찬가지입니다). 어쩌면 이것과 관련이 있을까요? –

관련 문제