Я не верю, что DetailsViewRow
является контейнером именования, поэтому для каждой строки он найдет один и тот же выпадающий список и заполняет его пять раз.
IMO, вам не нужно повторятькаждая строка - просто работа над деталями просмотра.Например,
If Page.User.Identity.Name = "gate" Then
Dim ddltype As DropDownList = CType(DetailsView1.FindControl("DDLTYPE"), DropDownList)
ddltype.Items.Add(New ListItem("", ""))
ddltype.Items.Add(New ListItem("Sugar Loading", "SL"))
ddltype.Items.Add(New ListItem("Molasses Unloading", "MU"))
ddltype.Items.Add(New ListItem("General Vehicle", "GV"))
ddltype.Items.Add(New ListItem("Ethanol Loading", "EL"))
ddltype.Items.Add(New ListItem("Bagasses Unloading", "BU"))
Label4.Text = "01"
ElseIf Page.User.Identity.Name = "bhone" Then
....
Другим способом было бы посмотреть на свойство RowState, чтобы выбрать строку в режиме вставки.Например,
If Page.User.Identity.Name = "gate" Then
For Each DetVW As DetailsViewRow In DetailsView1.Rows
If DetVW.RowState = DataControlRowState.Insert Then
Dim ddltype As DropDownList = CType(DetailsView1.FindControl("DDLTYPE"), DropDownList)
ddltype.Items.Add(New ListItem("", ""))
ddltype.Items.Add(New ListItem("Sugar Loading", "SL"))
ddltype.Items.Add(New ListItem("Molasses Unloading", "MU"))
ddltype.Items.Add(New ListItem("General Vehicle", "GV"))
ddltype.Items.Add(New ListItem("Ethanol Loading", "EL"))
ddltype.Items.Add(New ListItem("Bagasses Unloading", "BU"))
Label4.Text = "01"
Exit For
End If
Next
ElseIf Page.User.Identity.Name = "bhone" Then
....