2009-09-24 35 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,這顯示了列表排序的實際。那麼爲什麼當我加載頁面時,我看不到任何效果?

另一個問題,這是更關鍵和困難的,如下:

在aspx頁面我結合SQL Server 2005的數據源到GridView。在代碼隱藏中,我接觸到了RowDataBound事件,在該事件中,我處理了gridviews單元格內的一些鏈接和屬性。但是我不能在第一次加載頁面時才能使用它,只能在第一次額外的回發之後。

那麼,該怎麼辦?並感謝所有前面的建議!

回答

1

你的第一個問題是在手動填充的控件上調用DataBind。您可能在控件聲明中指定了一個DataSource,它在調用DataBind時使用。另外

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 2009-09-29 06:44:32