Asp.net 回发的数据绑定问题

Asp.net 回发的数据绑定问题,asp.net,data-binding,page-lifecycle,Asp.net,Data Binding,Page Lifecycle,我目前有两个问题妨碍我正确完成两个项目。我将把它们都放在这里,因为我相信它们与asp.net页面生命周期相连,但我找不到解决它们的方法 首先,我有一个下拉列表,我必须在codebehind中进行排序。它只包含文本,因此我应该能够使用页面加载中调用的以下方法来实现这一点: Dim alist As ArrayList = New ArrayList For Each litem As ListItem In ltEsittelyDropDownList.Items

我目前有两个问题妨碍我正确完成两个项目。我将把它们都放在这里,因为我相信它们与asp.net页面生命周期相连,但我找不到解决它们的方法

首先,我有一个下拉列表,我必须在codebehind中进行排序。它只包含文本,因此我应该能够使用页面加载中调用的以下方法来实现这一点:

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() 作为ArrayList的列表=新ArrayList 对于LTESITELHYDROPDOWNLIST.Items中的每个litem As ListItem alist.Add(litem.Text) 下一个 表1.Sort() Dim uusiDDList作为新的下拉列表 对于i作为整数=0到alist.Count-1 Dim litem作为新列表项 litem.Text=alist(i).ToString litem.Value=alist(i).ToString UUIDDList.Items.Add(litem) 'Response.Write(alist(i).ToString) 下一个 LTESITELHYDROPDOWNLIST=UUIDDLIST LTESITELDEDROPDOWNLIST.DataBind() 如您所见,这里有一个已注释的response.write,它显示列表实际上已排序。那么,为什么当我加载页面时,我看不到任何效果呢

另一个更为关键和困难的问题如下:

在aspx页面中,我将SQL Server 2005数据源绑定到gridview。在后面的代码中,我捕捉到了RowDataBound事件,在该事件中,我处理GridView单元格中的一些链接和属性。但是我无法在第一次加载页面时使用它,只能在第一次额外回发之后


那么,该怎么办呢?谢谢你在前面给我的建议

第一个问题是对手动填充的控件调用数据绑定。您可能在控件声明中指定了一个数据源,在调用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中的代码。

Heh,有些错误。使用了你的第一个建议,效果很好。非常感谢!