2009-09-24 9 views
0

두 가지 문제로 인해 현재 두 개의 프로젝트를 제대로 완료하지 못했습니다. asp.net 페이지 수명주기에 연결되어 있다고 생각하기 때문에이 두 가지를 모두 넣을 것입니다.하지만 그 방법을 찾을 수는 없습니다.포스트 백의 데이터 바인딩 문제

먼저 코드 숨김에서 정렬해야하는 DropDownList가 있습니다. 그것은 단지 텍스트를 포함, 그래서 페이지로드에서 호출 된 다음과 같은 방법으로 그렇게 할 수 있어야한다 :

 
     Dim alist As ArrayList = New ArrayList 

     For Each litem As ListItem In ltEsittelyDropDownList.Items 
      alist.Add(litem.Text) 
     Next 

     alist.Sort() 

     Dim uusiDDList As New DropDownList 

     For i As Integer = 0 To alist.Count - 1 
      Dim litem As New ListItem 
      litem.Text = alist(i).ToString 
      litem.Value = alist(i).ToString 
      uusiDDList.Items.Add(litem) 

      ' Response.Write(alist(i).ToString) 
     Next 

     ltEsittelyDropDownList = uusiDDList 
     ltEsittelyDropDownList.DataBind() 

당신이 볼 수 있듯이, 실제로 정렬 목록을 보여줍니다 거기에 주석을 Response.Write, 거기에 . 그런데 왜 페이지를로드 할 때 어떤 영향을 볼 수 없습니까? 영문 페이지에서

가 내가있는 gridview에 SQL Server 2005의 데이터 소스를 바인딩하고있어 다음과 같이

더 중요하고 어려운 다른 문제가있다. 그리고 코드 숨김에서 나는 gridviews의 셀 내부에서 일부 링크와 속성을 처리하는 RowDataBound 이벤트를 포착합니다. 하지만 첫 번째 페이지로드시 첫 번째 추가 포스트 백 후에 만 ​​작동하도록 할 수는 없습니다.

그럼, 어떻게해야합니까? 그리고 모든 조언을 주셔서 감사합니다!

답변

1

첫 번째 문제는 수동으로 입력 한 컨트롤에서 DataBind를 호출하는 것입니다. DataBind가 호출 될 때 사용되는 컨트롤 선언에 지정된 DataSource가있을 가능성이 큽니다. 당신은 원래 컨트롤에 목록 항목을 추가하여 코드를 단순화 할 수 있습니다

For i As Integer = 0 To alist.Count - 1 
    ltEsittelyDropDownList.Items.Add(New ListItem(alist(i).ToString()) 
Next 

을 다른 방법으로, 이미 컬렉션을 가지고, 당신은 단지 컨트롤에 바인딩 할 수 있습니다

ltEsittelyDropDownList.DataSource = alist 
ltEsittelyDropDownList.DataBind() 

를위한 당신의 두 번째 문제는 일부 예제 코드가 도움이 될 것입니다. 구체적으로 어떻게 컨트롤이 데이터 바인딩되고 RowDataBound의 코드가 사용되는지 설명합니다.

+0

흠, 실수. 귀하의 첫 번째 제안을 사용하고 잘 작동했습니다. 무리 감사! – Zan

관련 문제