我将一个onfocus事件添加到Web用户控件(.ascx),使其在获得焦点时引发事件,但事实并非如此。是不打算以这种方式工作,我怎样才能让它举起来?以下是示例,但不起作用。
<%@ Control Language="vb" AutoEventWireup="false" CodeBehind="WebUserControl1.ascx.vb"
Inherits="RaiseEventUserControl.WebUserControl1" %>
<div style="padding: 5px; background-color: #C0C0C0">
TB1:
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<br />
<br />
TB2:
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
</div>
<%@ Register Src="WebUserControl1.ascx" TagName="WebUserControl1" TagPrefix="uc1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript">
function RaiseEvent(obj) {
alert("Event was raised for: " + obj.id)
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<uc1:WebUserControl1 ID="WebUserControl11" runat="server" onfocus="RaiseEvent(this)" />
<br />
<uc1:WebUserControl1 ID="WebUserControl12" runat="server" onfocus="RaiseEvent(this)" />
</div>
</form>
</body>
</html>
答案 0 :(得分:0)
这将呈现给页面的方式是将“onFocus”属性添加到表示控件的div中。这不是支持焦点的东西。您可以添加“onFocus”项来表示控件中的第一个文本字段或类似的内容,以便在需要时能够引发事件。
答案 1 :(得分:0)
这可以使用jquery来实现。在head元素中,添加以下内容:
<script type="text/javascript" src="http://code.jquery.com/jquery-1.5.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('input[name^="WebUserControl"]').focusin(function () {
$(this).val("i have focus");
});
});
</script>
这样做,抓取名称以“WebUserControl”开头的输入元素,并添加“got focus”事件。该事件的处理程序将“我有焦点”作为该输入元素的值。