1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
| Protected Sub ListviewInit()
myCategory = Session("Category")
intlvcount = 0
lvCategory.DataSource = myCategory
lvCategory.DataBind()
End Sub
Protected Sub ddlCategorySelectedIndexChanged(ByVal o As Object, ByVal e As Telerik.Web.UI.DropDownListSelectedIndexChangedEventArgs)
For Each item In lvCategory.Items
Dim ddlCategory As DropDownList = CType(item.FindControl("ddlCategory"), DropDownList)
myCategory.Add(ddlCategory.SelectedValue)
Next
Dim maxlgt = myCategory.ToArray.Length - 1
If myCategory.Count >= 2 Then
If myCategory.Item(maxlgt - 1) = "-1" Then
'Deux derniers dropdown à vide -> enlever le dernier
myCategory.RemoveAt(maxlgt)
Else
If myCategory.Item(maxlgt) = "-1" Then
'Valeur avant dernière a changé -> refresh la dernière sans nouvelle valeur
Else
'Deux dernièers valeurs remplies -> ajouter une nouvelle
myCategory.Add(-1)
End If
End If
Else 'If myCategory.Count = 1
'Ajouter une nouvelle DropDown car la premiere a été choisie
myCategory.Add(-1)
End If
Session("Category") = myCategory
ListviewInit()
End Sub
Protected Sub lvCategory_ItemCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.ListViewItemEventArgs) Handles lvCategory.ItemCreated
If (e.Item.ItemType = ListViewItemType.DataItem) Then
myCategory = Session("Category")
Dim ddlCategory As DropDownList = CType(e.Item.FindControl("ddlCategory"), DropDownList)
Dim intlgid = AppSettings("IntranetLanguageId")
Dim mycat = (From p In db.Translate_ProductCategories _
And p.Language_ID = intlgid _
Order By p.Name _
Select p.ProductCategory)
Dim tmpRadItem As New ListItem
For Each cat In mycat
tmpRadItem = New ListItem
tmpRadItem.Value = cat.ID_Category
tmpRadItem.Text = GetCategoryName(cat.ID_Category, intlgid)
ddlCategory.Items.Add(tmpRadItem)
Next
'If myCategory.Count = 1 Or Session("lvcount") > 0 Then
tmpRadItem = New ListItem
tmpRadItem.Value = -1
tmpRadItem.Text = "---"
ddlCategory.Items.Insert(0, tmpRadItem)
'End If
If intlvcount > -1 Then
ddlCategory.SelectedValue = myCategory.Item(intlvcount)
End If
ddlCategory.DataBind()
intlvcount += 1
End If
End Sub |
Partager