我正在尝试解析json数据,但是它没有在标签中显示,element.Every的东西工作正常。如果我添加一个警报框,那么数据会显示在警报user.Name上,但$("#lblName").text(user.Name);不会显示数据。
下面是我的代码。如果我做错了什么,请告诉我。
<div class="col-lg-4 col-md-4 col-sm-4">
<b>Total Leaves :</b>
<asp:Label ID="lblName" runat="server" />
Ajax代码-
<script type="text/javascript">
function test() {
var name = $('#<%=txtSearch.ClientID%>').val();
$.ajax({
type: "POST",
url: "Applyleave.aspx/GetPersonDetails",
data: '{name: "' + name + '" }',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) {
if (response.d != '') {
var user = JSON.parse(response.d);
$("#lblName").text(user.Name);
}
else {
$('#lblName').html('no datafound');
}
},
error: function (response) {
alert(response.responseText);
}
});
}
</script>
C#代码:
[WebMethod]
public static string GetPersonDetails(string name)
{
string jsonData = "";
string constr = ConfigurationManager.ConnectionStrings["chsDB"].ConnectionString;
using (SqlConnection con = new SqlConnection(constr))
{
con.Open();
using (SqlCommand cmd = new SqlCommand("select c_empname from EmployeeDetail WHERE i_chsempid = @SearchText", con))
{
string[] splitData = name.Split('-');
int employeeid = Convert.ToInt32(splitData[0]);
cmd.Parameters.AddWithValue("@SearchText", employeeid);
SqlDataReader sdr = cmd.ExecuteReader();
if (sdr.Read())
{
var input = new
{
Name = sdr["c_empname"]
};
jsonData = (new JavaScriptSerializer()).Serialize(input);
}
con.Close();
}
}
return jsonData;
}
发布于 2021-09-22 07:09:17
您的标签是服务器端控件,因此具有特定的ID,该ID与您定义的id不匹配。您必须通过其客户端id来调用它:
$('#<%=lblName.ClientID%>').text(user.Name);
如果您不需要在服务器端使用该标签(即代码隐藏),您应该考虑将其重构为一个普通的html对象,如<span>
、<label>
或其他对象,这将大大减少通过javascript进行操作的痛苦。
或者,您可以将ClientIDMode
设置为static
,这将确保您输入的ID将向下传播到呈现的html输出:
<asp:Label ID="lblName" runat="server" ClientIDMode="static" />
发布于 2021-09-22 07:09:17
我使用了错误的标签语法。因为它不是服务器端的,所以从标签中删除了runat=“服务器”,它对我来说是有效的。代码的其余部分就可以了。
<asp:Label ID="lblName" />
https://stackoverflow.com/questions/69268756
复制相似问题