我正在尝试将错误标签添加到我拥有的面板的顶部。我在页面加载时在C#中创建了一个按钮,该按钮调用一个JavaScript函数,当单击该函数时,我希望在面板上显示一条错误消息。
C#:
private void CreateButton(int pID, string changeType)
{
ASPxButton btn = new ASPxButton();
btn.Text = "Execute Request";
btn.ID = "btn" + changeType;
btn.AutoPostBack = false;
btn.ClientSideEvents.Click = GetClientSideEventHandler(string.Format("OnProcessRequest(s, e, '{0}','{1}')", pID.ToString(), changeType));
TableRow oRow = new TableRow();
TableCell oCell = new TableCell();
oCell.CssClass = "table-cell";
oCell.Controls.Add(btn);
oRow.Cells.Add(oCell);
tblButtons.Rows.Add(oRow);
}
JS:
function OnProcessRequest$(pID, pChangeType) {
document.getElementById('errLabel').value = "Test";
}
ASPX:
<asp:Label ID="errLabel" runat="server"/>
当此代码运行时,它总是抛出以下错误:
错误:无法设置未定义引用或空引用的属性'value‘。
我也尝试过使用:
document.getElementById('<%=errLabel.ClientID%>').value =“测试”;
但这也抛出了错误。
在JS中点击此按钮后,如何更改此标签的值?
发布于 2020-11-20 11:10:39
好的,要在JavaScript中更改asp.net标签,您可以这样做:
(我们假设您设置了标签client id mode>
所以,如果我们在页面上有标签,你可以这样做:
<asp:Label ID="Label1" runat="server" Text="" ClientIDMode="Static"></asp:Label>
上面要更改的JavaScript如下所示:
var lbl = document.getElementById('<%=Label1.ClientID%>');
lbl.innerText = "Js lable text changed";
或
lbl.innerHTML = "<h2>this is some big text by js</h2>"
要非常小心大小写,在get元素中要非常小心额外的空格等。
此外,不要忘记在标签中包含Text="“!(您错过了这个!)。
JavaScript非常古怪--一个小小的错误动作,它就会翻滚回家。(浏览器中的调试器等同于去看牙医)。
您也可以使用jQuery。
因此,上面的内容是这样的:
var lbl = $('#Label1');
lbl1.text("js jquery text change");
现在,让我们对文本框执行相同的操作。
我们的asp.net文本框:
<asp:TextBox ID="TextBox1" runat="server" ClientIDMode="Static" ></asp:TextBox>
JavaScript:
var txt = document.getElementById('<%=TextBox1.ClientID%>');
txt.value = "This is js text for text box";
和jQuery一样:
var txt = $('#TextBox1');
txt.val("js jquery text for the text box");
那么,对于一个asp.net标签呢?您可以使用innerText或innerHTML。(或使用jQuery的文本(“此处显示的文本”))
在jQuery中,您可以使用不带()的.value
发布于 2020-11-20 06:33:03
尝试将ClientIDMode="Static“添加到标签中(如果该属性对您可用)。或者,您可以添加ClientID="errLabel“作为替代。实际情况是,asp.net会自动给你的字段一个生成的id,以便在客户端关闭,所以它不会与你的id "errLabel“匹配。
<asp:Label runat="server" ID="errLabel" ClientIDMode="Static"></asp:Label>
或
<asp:Label runat="server" ID="errLabel" ClientID="errLabel"></asp:Label>
https://stackoverflow.com/questions/64920894
复制相似问题