正如您从注释掉的代码中看到的,我正试图让模型下拉列表受到+ selCurrentManuf.Text
的影响。
我收到这个错误
未声明"selCurrentManuf"。由于其保护级别的原因,它可能无法访问。
如何解决这个问题?
我可以访问页面另一部分的下拉菜单,如下所示。。
Dim sc1_currentmanuf As String = CType(e.Item.FindControl("selCurrentManuf"), DropDownList).Text
然而,在我尝试使用的函数中,selCurrentManuf无法访问
Dim sc1_currentmanuf As String = CType(dlContacts.Items(0).FindControl("selCurrentManuf"), DropDownList).Text
Dim myQuery As String = "SELECT * FROM c5_model where c5_manufid = " + sc1_currentmanuf
右键单击.aspx页面,然后选择"转换为Web应用程序"命令。
然后你就可以写:
Dim myQuery As String =
String.Format("SELECT * FROM c5_model WHERE c5_manuf = '{0}'",
selCurrentManuf.SelectedItem.Text )
我假设您的函数在App_Code或另一个dll的类中,而不是在页面的代码后面。
如果是,请改为:
我假设你的asp页面上有这样的代码:
Protected Sub selCurrentManuf_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
GetCurrentModel(selCurrentManuf.Text)
End Sub
将您的GetCurrentModel代码更改为:
Function GetCurrentModel(Byval c5_manuf as String) As DataSet
Dim mySession = System.Web.HttpContext.Current.Session
Dim myQuery As String = "SELECT * FROM c5_model " 'where c5_manuf = " + + c5_manuf
Dim myConnection As New MySqlConnection(mySession("localConn"))
myConnection.Open()
Dim myCommand As New MySqlCommand(myQuery, myConnection)
Dim myDataAdapter = New MySqlDataAdapter(myCommand)
Dim myDataset As New DataSet
myDataAdapter.Fill(myDataset, "c5_model")
Dim dr As DataRow = myDataset.Tables(0).NewRow
myDataset.Tables(0).Rows.Add(dr)
GetCurrentModel = myDataset
myConnection.Close()
End Function