想要实现功能:依据窗口的某些参数,打开新窗口来展示其详细信息。
尝试了以下的三种方法,最终还是选择了【第一种】,剩下两种没有实现。
一、通过<a>标签的方式
在合适的位置,通过<a οnclick="OpenDetail('<%=Label.Text%>')">详情</a>;
或者<button οnclick="OpenDetail('<%=Label.Text%>')">详情</button>;触发点击事件,并传参,在js中接收即可。
<script type="text/javascript">
function OpenDetail(e) {
alert(e);
}
</script>
二、document.getElementById的形式报错,报错 “控件包含代码块(即<%……%>
),因此无法修改控件集合” 。网络查询的方法,书写的没有问题,但是就是报错,没有解决(×)。有人说<%=EnabledFileType%>改为<%#EnabledFileType%>,这个我没尝试。也有人说将下面的js从head放到body中就可以了,我简单尝试了一下,不怎么行。还有人说需要在head头中增加 runat=“server” 属性,我也没尝试,或许真的可以。
<script type="text/javascript">function getLabelValue() {// 使用document.querySelector获取元素var label = document.querySelector('#<%= Label1.ClientID %>');if (label) {var value = label.innerHTML;alert('Label的值是: ' + value);}}</script>
三、通过按钮点击,在cs文件中书写按钮点击函数,这样不能精确传参了,功能上不符合要求(×)。
<asp:Button ID="Button1" runat="server" Text="获取值" OnClick="Button1_Click" />
protected void Button1_Click(object sender, EventArgs e){string labelValue = Label1.Text;Response.Write($"Label 的值为: {labelValue}");}