0
在ASP.Net的GridView的OnRowDataBoundevent
我試圖填充部的DropDownList一行時,編輯將要顯示(ddlDepts)。爲什麼在Dropdownlist OnRowDataBound事件中沒有選擇一個項目?
下面的代碼是不是因爲DROPDOWNLIST工作是空的。
任何想法我做錯了什麼?
「// GridView的標記:
<asp:TemplateField HeaderText="Department" ItemStyle-Width = "150">
<ItemTemplate>
<asp:Label ID = "lblDept" runat="server" Text='<%# Eval("deptName")%>'></asp:Label>
<asp:DropDownList ID="ddlDepts" runat="server" Visible = "false">
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
'' //的CodeFile
Protected Sub OnRowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs)
If e.Row.RowType = DataControlRowType.DataRow Then
Dim cmd As New SqlCommand("SELECT DISTINCT(DeptID,DeptName) FROM Departments")
Dim ddlDepts As DropDownList = TryCast(e.Row.FindControl("ddlDepts"), DropDownList)
ddlDepts.DataSource = Me.ExecuteQuery(cmd, "SELECT")
ddlDepts.DataTextField = "DeptID"
ddlDepts.DataValueField = "DeptName"
ddlDepts.DataBind()
Dim DeptName As ListItem = ddlDepts.Items.FindByValue("lblDept")
If DeptName IsNot Nothing Then
ddlDepts.SelectedValue = DeptName.Value
End If
End If
End Sub
你在哪裏初始化到包含部門表的數據庫的連接? –
可能愚蠢的問題,但你肯定你的OnRowDataBound事件實際上是發射呢? –
@inquisitive_mindm很好的問題。我擁有了它,並開始修改代碼並將其刪除。它下面是: gvInPerson.DataSource =的GetData(CMD)和連接到DB在的getData()子定義。它沒有幫助。 大衛W,沒有這樣的事情愚蠢的問題,但不知道爲什麼它會雖然射擊。 – Tairoc