定义模板列,当选择某一个记录进行编辑时,初始化DropDownList 的数据:
<asp:TemplateColumn HeaderText="合同负责人">
<ItemTemplate>
<asp:Label ID="Label1" runat="Server" Text='<%# Eval("MemberName") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="DpMemberList" runat="Server" DataTextField="MemberName" DataValueField="MemberID"></asp:DropDownList>
</EditItemTemplate>
于是我尝试如下的代码
Protected Sub DBGrdList_EditCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs)
Me.DBGrdList.EditItemIndex = e.Item.ItemIndex
Me.BindData()
If Not Me.DBGrdList Is Nothing Then
If Not e.Item Is Nothing Then
Dim dp As DropDownList = e.Item.Cells(4).FindControl("DpMemberList")
If Not dp Is Nothing Then
Dim DeptID As String = e.Item.Cells(5).Text
Dim obj As New DBController
Dim sqlstr As String = "select * from memberInfo where departmentId=" + DeptID
obj.BindDrpDownList("MemberName", "MemberID", sqlstr, dp)
End If
End If
End If
End Sub
问题是:
在EditCommand中找不到DpMemberList下拉列表
可能是跳出该过程时才加载DpMemberList控件
因为在DBGrdList_CancelCommand中可能找到该控件
我该怎么办??
我使用的是2003的示例代码,在2005中出现的如下问题。
2006-10-18