C# asp:label的Javascript更多/更少文本按钮
我正在动态创建控件,其中一个是标签控件。如果label.Text.Length大于某个字符数,我希望显示更多/更少的文本按钮以缩短/扩展文本。在使用服务器端代码时,我使该函数正常工作,但是,我希望使用客户端代码来执行此操作,以防止发生回发 所以我想我会以某种方式动态添加javascript?如果可能的话,我不确定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" + (
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