2013-07-11 3 views
0

나는 하드 코드 된 첫 번째 항목과 SQL 데이터 원본에 의해 바인딩 된 다른 항목이있는 드롭 다운 목록이 있습니다. 이제 C# 코드에서이 드롭 다운 목록의 항목 수를 계산하면 첫 번째 하드 코딩 된 목록 항목 인 항상 1이됩니다. 이 드롭 다운 목록은 브라우저의 모든 목록 항목을 올바르게 표시합니다. 나는 정확한 문제를 이해할 수 없다.드롭 다운 목록 항목 수 작동 중

<asp:DropDownList ID="ddlGroup" runat="server" DataSourceID="dsGroupListByUserId" 
    Width="100px" DataTextField="GroupName" DataValueField="GroupID" AppendDataBoundItems="True"> 
    <asp:ListItem Value="0">N/A</asp:ListItem> 
</asp:DropDownList> 
<asp:SqlDataSource ID="dsGroupListByUserId" runat="server" ConnectionString="<%$ ConnectionStrings:EMSsql %>" SelectCommand="GetGroup_ByEventID" SelectCommandType="StoredProcedure" > 
    <SelectParameters> 
     <asp:SessionParameter DefaultValue="0" Name="EventID" SessionField="EventID" Type="Int64" /> 
    </SelectParameters> 
</asp:SqlDataSource> 

그리고 이것은 내가 아이템을 취득하기 위해 노력하고있어 어떻게이

int ItemsCount = ddlGroup.Items.Count; 
+0

어디에서 (언제) 두 번째 전화를합니까? –

+0

카운트를 받기 전에 databind를 호출합니까? – DGibbs

+0

잘 작동하고 있습니다. 우리가 도울 수있는 다른 문제? – Asken

답변

3

가! Page.IsPostBack에 데이터 바인딩을 넣어 count-.

페이지가 다시 게시 될 때마다 모든 항목이 새로 고쳐 지므로 유일한 목록 항목 클라이언트 측이므로 개수가 1 인 이유입니다. 채워진 서버 측은 게시되지 않은 상태 여야합니다.

If (!Page.IsPostBack) 
{ 
ddlGroup.DataBind(); 
} 
+1

정말 고마워, 지금 일하고있어 :) –

+0

@ ShilpaSoni 문제는 없지만이 대답이 도움이된다면, 정답으로 확인하십시오 : D – clamchoda

1

난 당신이 page_LoadPage.IsPostBack 속성을 사용하지 않기 때문에이라고 생각합니다. 를 Page_Load에

사용 IsPostBack

같은
private void Page_Load() 
{ 
    if (!IsPostBack) 
    { 
     // Bind your dropdown. 
    } 
} 

는 당신을 위해 작동 바랍니다.

+0

예, 지금 작동 중입니다. 고맙습니다. –

+0

해결 하셨다면 당신의 문제는 대답으로 받아 들여야한다는 것을 잊지 마십시오. – Rahul

관련 문제