嗨,我有一个DATALIST,其中我有一个DropDL CTRL,它与LINQ绑定这样的东西:
Public Sub DLCategorias_ItemDataBound(sender As Object, e As System.Web.UI.WebControls.DataListItemEventArgs) Handles DLCategorias.ItemDataBound
If e.Item.ItemType = ListItemType.AlternatingItem Or e.Item.ItemType = ListItemType.Item Then
Dim DC As New MyDataContext
Dim cat = (From c In FF.ProductosCategorias Select c Where c.idCategoria = (CTypeDLCategorias.DataKeys(e.Item.ItemIndex), Integer))).Single
Dim thisId As Integer = cat.idCategoria
Dim subcat = From d In dc.ProductosSubCategorias Where d.idCategoria = thisId Select d.idSubCategoria, d.NombreSubCategoria
Dim ddlSubCat As DropDownList = CType(e.Item.FindControl("ddlSubCat"), DropDownList)
Dim BTNVER As Button = CType(e.Item.FindControl("BtnVerSubCat"), Button)
ddlSubCat.DataTextField = "NombreSubCategoria"
ddlSubCat.DataValueField = "idSubCategoria"
ddlSubCat.DataSource = subcat
ddlSubCat.DataBind()
ddlSubCat.AutoPostBack = True
BTNVER.PostBackUrl = "SubCat.aspx?idSubCategoria=" & ddlSubCat.SelectedValue.ToString
我想要实现的是IF ddlSubCat的值已更改(导致某些用户 选择另一个SubCat看看POSTBACK正常工作。
它的功能(截至此处)是获取DDLSubCat的第一个值(DDL的第一个索引) 我需要一些“刷新”(但不能)de DATABOUND或其他适用于Button的工作正常。
尝试了一切,做了ONCLICK(但ddlSubCat在DL中没有出现在代码行中) 在设计视图中尝试EVAL ......但是不能!!
请提前帮助,请提供帮助
答案 0 :(得分:0)
解决了! 感谢Tim Schmelter提出的其他答案,我认为我可以通过Codebehind处理 在这样的BTN点击事件中:
受保护的子BtnVerSubCat_Click(发件人为对象,e为EventArgs)
Dim container = DirectCast(DirectCast(sender, Control).NamingContainer, DataListItem)
Dim idSubCat = DirectCast(container.FindControl("ddlSubCat"), DropDownList)
Dim Xid As String = idSubCat.SelectedValue
Response.Redirect("SubCat.aspx?idSubCatgoria=" & Xid)
End Sub
非常感谢