下拉列表将参数传递给 vb.net 中的 webmethod
Posted
技术标签:
【中文标题】下拉列表将参数传递给 vb.net 中的 webmethod【英文标题】:dropdownlist pass parameter to webmethod in vb.net 【发布时间】:2020-10-29 20:16:25 【问题描述】:我用谷歌搜索了几天,但仍然无法找到解决方案。 我创建了 3 个 ASP 下拉列表,用户选择字符串后,将字符串传递给 webmethod 以在 VB.net 中进行 SQL 查询
谁能给我一些提示?
谢谢。
代码如下:
function draw2CavitiesChart()
var options =
title: '2 Line VS Cavities',
width: 1700,
height: 700,
//bar: groupWidth: "95%" ,
//curveType: 'function',
//isStacked: true
pointSize: 8,
hAxis: title: 'Date', format: 'M/d/yy' ,
vAxis: title: 'Total Cavities' ,
//colors: ['blue'],
legend: position: "bottom"
;
var vs_SelectedLine1 = ddlSelectedLine1;
var vs_SelectedLine2 = ddlSelectedLine2;
var vs_SelectedLine3 = ddlSelectedLine3;
$.ajax(
type: "POST",
url: "Chart.aspx/Get2CavitiesData",
date: SelectedLine1: vs_SelectedLine1, SelectedLine2: vs_SelectedLine2, SelectedLine3: vs_SelectedLine3 ,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (r)
var data = google.visualization.arrayToDataTable(r.d);
var chart = new google.visualization.LineChart($("#div2CavitiesChart")[0]);
chart.draw(data, options);
,
failure: function (r)
alert(r.d);
,
error: function (r)
alert(r.d);
);
和后面的代码:
Return (Me.ddlSelectedLine1.SelectedItem.ToString)
Return (Me.ddlSelectedLine2.SelectedItem.ToString)
Return (Me.ddlSelectedLine3.SelectedItem.ToString)
Dim constring As String = ConfigurationManager.ConnectionStrings("LocalDBConnectionString").ConnectionString
Dim chartData As New List(Of Object)()
chartData.Add(New Object() "SelectedDate", "(SelectedLine1)", "(SelectedLine2)", "(SelectedLine3)")
Using con As New SqlConnection(constring)
Using cmd As New SqlCommand()
cmd.CommandType = CommandType.StoredProcedure
cmd.CommandText = "ChartReportDataTable"
cmd.Connection = con
con.Open()
Using sdr As SqlDataReader = cmd.ExecuteReader()
While sdr.Read()
chartData.Add(New Object() sdr("SelectedDate"), sdr("(SelectedLine1"), sdr("(SelectedLine2)"), sdr("(SelectedLine3)"))
End While
End Using
con.Close()
Return chartData
End Using
End Using
End Function
和 ASP:
【问题讨论】:
请同时显示 aspx 布局。 嗨 Salik,这是我的 asp 布局:您正在使用<asp:DropDownList>
,因此在客户端JS 中访问它的方法是使用<%= ddlSelectedLine1.ClientID %>
。所以像var vs_SelectedLine1 = document.getElementById('<%= ddlSelectedLine1.ClientID %>).value
这样的东西应该可以解决问题。
此外,您将无法访问代码隐藏中控件的值,因为正常的页面循环都不会执行,因此控件将从视图状态加载值。
在您的 JS 客户端 ajax 调用中,您的代码中有错字:
data: " 'SelectedLine1': '" + vs_SelectedLine1 + "', 'SelectedLine2': '" + vs_SelectedLine2 + "', 'SelectedLine3': '" + vs_SelectedLine3 + "' "
你的后端代码签名看起来像
public static <chartDataType> Get2CatvitiesDate(string SelectedLine1, string SelectedLine2, string SelectedLine3) ... <rest of your function >
我不知道你的后端方法的返回类型,但这应该可以帮助你。
【讨论】:
我放了.ClientID,但结果似乎相同,脚本可以从下拉列表中看到该值,但无法检索并且用户选择该值并且在用户按下按钮后无法触发该功能,会请检查我上传的jpg(我不知道如何在回复窗口中上传jpg)dropbox.com/s/18y0yj5922x44cr/getvalue1.JPG?dl=0和dropbox.com/s/u8rvwujriak4rcr/getvalue2.JPG?dl=0谢谢。 嗨Salik,返回类型是字符串,但是修改代码后还是一样的结果,从下拉列表中选择值后按钮没有触发, 如果您希望代码在下拉列表中的值更改时运行,那么您需要添加客户端 onchange 处理程序。以上是关于下拉列表将参数传递给 vb.net 中的 webmethod的主要内容,如果未能解决你的问题,请参考以下文章
在 ASP.NET MVC 中的下拉列表上触发 jQuery 更改事件并将参数传递给 url 操作