用于 asp:label 的 Javascript 更多/更少文本按钮

Javascript more/less text buttons for asp:label

本文关键字:文本 按钮 更多 Javascript asp label 用于      更新时间:2023-09-26

我正在动态创建控件,其中一个是标签控件。如果标签。文本长度大于特定字符数 我希望出现更多/更少文本按钮以缩短/扩展文本。 我在使用服务器端代码时让这个函数正常工作,但是,我想使用客户端代码执行此操作以防止发生回发。

所以我想我会以某种方式动态添加 javascript?我不太确定javascript会是什么样子,但如果这是可能的。

LinkButton btn_more = new LinkButton();
btn_more.ID = "lblCustomControl" + (i + 1).ToString() + "_more";
btn_more.ForeColor = System.Drawing.Color.SlateBlue;
btn_more.Text = " [Show More]";
btn_more.Font.Underline = false;
btn_more.Click += new EventHandler(btn_more_Click);
LinkButton btn_less = new LinkButton();
btn_less.ID = "lblCustomControl" + (i + 1).ToString() + "_less";
btn_less.ForeColor = System.Drawing.Color.SlateBlue;
btn_less.Font.Underline = false;
btn_less.Text = " [Show Less]";
btn_less.Click += new EventHandler(btn_less_Click);
btn_less.Visible = false;

我目前正在创建这样的按钮,并将它们添加到包含标签的表格单元格中。我猜我必须更换btn_more/更少。点击

btn_more/less.OnClientClick = "my javascript stuff" + btn_less/more.ID + "more javascript stuff" + myLabel.ID;

显然不是按这个顺序,但我猜这就是我将如何动态地将 JavaScript 操作添加到我的按钮。

任何建议都会很棒! 谢谢(:

你可以用这种方式绑定javascript。

btn_more.Attributes.Add("onclick", "TestFun(this);");

在网页端

<script language="javascript" type="text/javascript">
 function TestFun(obj)
 {          
      alert("I am test fun clicked by " + this.id);
      //for server side label
      document.getElementById('<%= Label1.ClientID %>').style.display = "none";
      document.getElementById('<%= LinkButton1.ClientID %>').style.display = "block"; 
      //For client side html element which do not have attribute runat="server"
      document.getElementById('Label1').style.display = "none";
      document.getElementById('myanchor').style.display = "block"; 
 }
</script>