ASP.NET web窗体中如何给一个Label控件添加单击事件

ASP.NET web窗体中如何给一个Label控件添加单击事件,第1张

分两种情况,调用JS方法,和调用后台方法<br>调用JS方法的如下<br>有两种方法:<br>一、在前台:<asp:Label runat="server" ID="Label1" Text="Label1" onclick="你的JS方法"></asp:Label><br>二、在后台:Label1.Attributes.Add("onclick","你的JS方法")这个要加在Page_Load里哦<br>Label不能像按钮一样双击后有一个自己的单击方法,如果你是要单击Label后调用后台的方法你可以这样:<br>首先,你写一个后台的方法,这个方法一定要是public的,给你个例子吧!简单的:<br>后的方法:<br>public string showNum()<br> {<br> return "123"<br> }<br>JS方法:<br>function show()<br> {<br> alert('<%=showNum() %>')<br> }<br>然后给Label加个onclick事件就可以啦,这样<asp:Label ID="Label1" runat="server" Text="Label" onclick="show()"></asp:Label>

后台Page_Load里添加

lbT.Attributes.Add("onclick","display()")

前台

<script type="text/javascript">

function display() {

alert('你好,这是Label点击事件')

}

</script>

<asp:Label runat="server" ID="lbT" Text="Label点击事件"></asp:Label>

这里的关键点在于,必须在Page_Load事件中每次都调用创建控件的代码。这与我们一般的理解是不一样的。因为这些控件是动态添加的,在页面的源文件中并没有。所以PostBack回来之后重新构建页面时,非得再次创建。这样做不会重复创建,因为每次都重新构建了,其实原先的控件都消失了。

另外提醒注意:在动态创建控件的页面上,如果禁用ViewState,将使得页面失去作用。

所以对于你的代码,是没有错的。

只是在页面提交后,你必须在 Page_Load事件里面先重新创建你的 file_bt。

这样就没有问题了。

例如你做一个简单的例子,就能看到你要的效果。

在 Page_Load 事件里面写

Button file_bt = new Button()

file_bt.Width = 40

file_bt.Text = "完成"

file_bt.ID=dr["task_id"].ToString()

file_bt.Click+=new System.EventHandler(file_bt_Click)

然后这直接在方法中写

protected void file_bt_Click(object sender, EventArgs e)

{

Button b1 = (Button)sender

Label1.Text = "ok"

// showtask(int.Parse(Session["sele_wbs"].ToString()))

}

这样你就可以看到效果了。

注意,Page_Load方法中创建btn的那几个步骤,不能放到 if(!ispostback)

中哦。否则无法重新在提交的时候构建这个按钮。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11805353.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存