Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# asp:label的Javascript更多/更少文本按钮_C#_Javascript_Asp.net_Dynamically Generated - Fatal编程技术网

C# asp:label的Javascript更多/更少文本按钮

C# asp:label的Javascript更多/更少文本按钮,c#,javascript,asp.net,dynamically-generated,C#,Javascript,Asp.net,Dynamically Generated,我正在动态创建控件,其中一个是标签控件。如果label.Text.Length大于某个字符数,我希望显示更多/更少的文本按钮以缩短/扩展文本。在使用服务器端代码时,我使该函数正常工作,但是,我希望使用客户端代码来执行此操作,以防止发生回发 所以我想我会以某种方式动态添加javascript?如果可能的话,我不确定javascript会是什么样子 LinkButton btn_more = new LinkButton(); btn_more.ID = "lblCustomControl" + (

我正在动态创建控件,其中一个是标签控件。如果label.Text.Length大于某个字符数,我希望显示更多/更少的文本按钮以缩短/扩展文本。在使用服务器端代码时,我使该函数正常工作,但是,我希望使用客户端代码来执行此操作,以防止发生回发

所以我想我会以某种方式动态添加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\U。单击

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);");
在html端

<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>

功能测试乐趣(obj)
{          
警报(“我被“+this.id”点击了测试乐趣);
//用于服务器端标签
document.getElementById(“”).style.display=“无”;
document.getElementById(“”).style.display=“block”;
//对于没有属性runat=“server”的客户端html元素
document.getElementById('Label1').style.display=“无”;
document.getElementById('myanchor').style.display=“block”;
}

是的。您可能还有:
btn_more.Attributes.Add(“onclick”、“TestFun”(+btn_more.ClientID+)”);
来传递被单击的特定按钮的id。啊,更好!我的应该是:btn_more.Attributes.Add(“onclick”、“TestFun(“+btn_more.ClientID+”))),谢谢(:我将尝试使用它。如果您添加一点代码来更改链接按钮和标签的可见性,我将为您提供复选标记当我单击按钮时,this.id返回“undefined”,如果我尝试使用btn_more.ClientID,我会得到一个javascript错误,该错误表示--insert button id--为null。您是否将此作为语句btn_more.Attributes.Add(“onclick”,“TestFun(this);”)传递,并确保您已将id分配给btn_more