2012-01-13 5 views
0

У меня есть детали, в которых я использовал Dropdownlist для INsert Item Template, и я пытаюсь добавить элементы в Dropdown, используя код vb.net, используя для цикла bu, когда он запускает его, добавляет значения пять раз, потому что общее число строк в детальном пять Пожалуйста, любой один hrlp меня, чтобы выйти из данного Вот мой кодДобавление элементов для подробного просмотра DropDownlist in Insert ITem Template

If Me.IsPostBack Then 



      If Page.User.Identity.Name = "gate" Then 
       For Each DetVW As DetailsViewRow In DetailsView1.Rows 
        Dim ddltype As DropDownList = CType(DetVW.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" 

       Next 
      ElseIf Page.User.Identity.Name = "bhone" Then 

       For Each DetVW As DetailsViewRow In DetailsView1.Rows 
        Dim ddltype As DropDownList = CType(DetVW.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 = "02" 
       Next 
      ElseIf Page.User.Identity.Name = "ujl" Then 
       For Each DetVW As DetailsViewRow In DetailsView1.Rows 
        Dim ddltype As DropDownList = CType(DetVW.FindControl("DDLTYPE"), DropDownList) 

        ddltype.Items.Add(New ListItem("", "")) 
        ddltype.Items.Add(New ListItem("Cotton Unloading", "CU")) 
        ddltype.Items.Add(New ListItem("Yarn Loading", "YL")) 
        Label4.Text = "03" 
       Next 
      End If 
     End If 

ответ

0

Я не верю, что 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 
.... 
+0

С Method Ist В раскрывающихся стало ясно после вставки строки и второго метода ситуация такая же, как это в моем вопросе Абову –

0

мы можем использовать только asp.net

If UserRole = "Admin" Then 
    DropDownList5.Items.Add(New ListItem("text", "value")) 
    DropDownList5.Items.Add(New ListItem("text1", "value1")) 
else 
    DropDownList5.Items.Add(New ListItem("text2", "value2")) 
End If 
+1

ли это ответ или вопрос? – Ren

Смежные вопросы