我目前有两个问题阻止我正确完成两个项目。我会把它们放在这里,因为我相信它们已经连接到asp.net页面生命周期,但我无法找到解决方法。
首先我有一个DropDownList,我必须在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()
正如你所看到的,那里有一个注释的response.write,它显示列表实际已经排序。那么,为什么当我加载页面时,我看不到任何效果?
另一个更为关键和困难的问题如下:
在aspx页面中,我将SQL Server 2005数据源绑定到gridview。在代码隐藏中,我抓住了RowDataBound事件,在该事件中我处理了gridviews单元格中的一些链接和属性。但是,我无法在第一次加载后第一次加载时才能使用它。
那么,有什么可做的?并感谢前面的所有建议!
答案 0 :(得分: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中的代码。