【发布时间】:2019-09-16 07:11:52
【问题描述】:
我需要使用ajax 在where 子句中将label 值传递给static 'web 方法'。我正在创建一个结构化图表,我只需要显示当前登录的用户的数据和子数据。
我不知道如何将 asp 控件值传递给静态方法。我什至尝试从 jquery 和 ajax 传递标签值,但是,我得到了 undefined error。请帮助解决这个错误
我的代码是
[WebMethod]
public static List<object> GetChartData(string name)
{
string query = "SELECT * ";
query += " from abc where ID=@ID";
string constr = ConfigurationManager.ConnectionStrings["constr1"].ConnectionString;
using (MySqlConnection con = new MySqlConnection(constr))
{
using (MySqlCommand cmd = new MySqlCommand(query))
{
cmd.Parameters.AddWithValue("@ID",name);
----i am getting error on lblsubid----
List<object> chartData = new List<object>();
cmd.CommandType = CommandType.Text;
cmd.Connection = con;
con.Open();
using (MySqlDataReader sdr = cmd.ExecuteReader())
{
while (sdr.Read())
{
chartData.Add(new object[]
{
sdr["ID"], sdr["Name"], sdr["Emailid"] ,sdr["SubId"]
});
}
}
con.Close();
return chartData;
}
}
}
前端代码:-
google.load("visualization", "1", { packages: ["orgchart"] });
google.setOnLoadCallback(drawChart);
function drawChart() {
var url = window.location.pathname;
var action = url.substr(url.lastIndexOf('/') + 1);
document.getElementById("lblsubid").innerHTML = action;
$.ajax({
type: "POST",
url: "Test.aspx/"+action+"GetChartData",
data: '{name: "' + action + '" }',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (r) {
var data = new google.visualization.DataTable();
data.addColumn('string', 'Entity');
data.addColumn('string', 'ParentEntity');
data.addColumn('string', 'ToolTip');
for (var i = 0; i < r.d.length; i++) {
var employeeId = r.d[i][0].toString();
var employeeName = r.d[i][1];
var designation = r.d[i][2];
var reportingManager = r.d[i][3] != null ? r.d[i][3].toString() : '';
data.addRows([[{
v: employeeId,
f: employeeName + '<div>(<span>' + designation + '</span>)</div>'
}, reportingManager, designation]]);
}
var chart = new google.visualization.OrgChart($("#chart")[0]);
chart.draw(data, { allowHtml: true });
},
failure: function (r) {
alert(r.d);
},
error: function (r) {
alert(r.d);
}
});
}
</script>
<div id="chart">
</div>
<asp:Label runat="server" ID="lblsubid"></asp:Label>
【问题讨论】:
-
你必须返回一个字符串。至于标签……我没有看到标签。研究页面方法。
-
你的
label在你的 AJAX 调用中在哪里?您需要为标签设置一个值,然后将其发送到您的 WebMethod。
标签: javascript c# jquery asp.net ajax