我有一个包含3个下拉列表的页面,第二个和第三个下拉列表添加了CascadingDropDown。第3个下拉列表将从第1和第2个下拉列表中获取参数。因此,在我从谷歌找到的CascadingDropDown的当前示例中,他们只将一个参数传递给WebService方法。如何将两个参数传递给服务方法,以便我的3rd dropdownlist
将基于第一个和第二个下拉列表的SelectedValue?
<WebMethod()> _
Public Function GetTeams(ByVal knownCategoryValues As String, ByVal category As String) As CascadingDropDownNameValue()
Dim strConnection As String = ConfigurationManager.ConnectionStrings("nerdlinessConnection").ConnectionString
Dim sqlConn As SqlConnection = New SqlConnection(strConnection)
Dim strTeamQuery As String = "SELECT * FROM TEAM WHERE conf_id = @confid"
Dim cmdFetchTeam As SqlCommand = New SqlCommand(strTeamQuery, sqlConn)
Dim dtrTeam As SqlDataReader
Dim kvTeam As StringDictionary = CascadingDropDown.ParseKnownCategoryValuesString(knownCategoryValues)
Dim intConfId As Integer
If Not kvTeam.ContainsKey("Conference") Or Not Int32.TryParse(kvTeam("Conference"), intConfId) Then
Return Nothing
End If
cmdFetchTeam.Parameters.AddWithValue("@confid", intConfId)
Dim myTeams As New List(Of CascadingDropDownNameValue)
sqlConn.Open()
dtrTeam = cmdFetchTeam.ExecuteReader
While dtrTeam.Read()
Dim strTeamName As String = dtrTeam("team_name").ToString
Dim strTeamId As String = dtrTeam("team_id").ToString
myTeams.Add(New CascadingDropDownNameValue(strTeamName, strTeamId))
End While
Return myTeams.ToArray
End Function
这是我找到的示例代码!正如您在代码中看到的那样,'@confid'将从第二个下拉列表中传递出来!所以,我是否修改此代码以从第一个下拉列表中获取所选值?
答案 0 :(得分:0)
您指的是哪种网络服务?是你写的东西还是别人的网络服务?
如果是您的webservice,请更新其中的方法定义并传递两个参数。如果是其他人的话,请联系相关人员以了解可以做的最好的事情。
答案 1 :(得分:0)
海报似乎并没有真正询问Web服务,而是关于SqlCommand和添加参数。
首先,你永远不应该直接从你的Web应用程序运行sql。将它放在存储过程中。
其次,您应该对进入的值进行检查,因为这是您的网站用户使用SQL injection attacks的好方法。
现在......这就是你要找的东西:
Dim strTeamQuery As String = "SELECT * FROM TEAM WHERE conf_id = @confid"
变为
Dim strTeamQuery As String = "SELECT * FROM TEAM WHERE conf_id = @confid AND second_id = @secondId"
然后再添加其中一个:
cmdFetchTeam.Parameters.AddWithValue("@confid", intConfId)
(当然是另一个值,就像这样)
cmdFetchTeam.Parameters.AddWithValue("@confid", intConfId)
cmdFetchTeam.Parameters.AddWithValue("@secondId", intSecondId)