전화 번호 입력을위한 웹 사용자 정의 컨트롤을 만들었습니다.이 컨트롤에는 영역 코드, 숫자 및 확장자에 대한 3 개의 텍스트 상자가 있습니다. 텍스트 상자는 위치 지정을 위해 테이블에 있으며 테이블은 스팬 안에 있습니다. 내가 가지고있는 컨트롤을 사용하는 페이지에서 <asp:Label ID="Label6" runat="server" AssociatedControlID="uxPhoneNumber">Phone</asp:Label>
웹 사용자 컨트롤에서 자식으로 포커스 설정
관련 레이블을 클릭 할 때 지역 코드 입력에 포커스를 설정하고 싶습니다. 레이블을 클릭 할 때 웹 사용자 정의 컨트롤에 포커스가 있습니까? 아니면이 ascx에서 html을 변경할 수 있습니까? 태그에 onfocus()
을 추가하려고 시도 했으므로 <table>
태그를 사용하므로 포커스를 설정하는 데 자바 스크립트를 사용할 수 있지만 이벤트는 발생하지 않습니다. onfocus() 이벤트를 첫 번째 입력으로 이동하면 스크립트가 실행됩니다.
여기에 완전한 ascx 코드가 있습니다.
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="PhoneNumber.ascx.cs" Inherits="CustomControls.PhoneNumber" %>
<span id="uxPhoneNumberControl" runat="server" style="display: inline-block;" onfocus="setInitialFocus()">
<asp:Table ID="uxPhoneNumberTable" runat="server">
<asp:TableRow runat="server">
<asp:TableCell runat="server">
<telerik:RadMaskedTextBox ID="uxAreaCode" runat="server" Columns="3" Mask="###" CssClass="span1" Skin="" MaxLength="3"></telerik:RadMaskedTextBox>
</asp:TableCell>
<asp:TableCell runat="server">
<telerik:RadMaskedTextBox ID="uxPhoneNumber" runat="server" Mask="###-####" Skin="" Columns="10" CssClass="input-mini" MaxLength="8"></telerik:RadMaskedTextBox>
</asp:TableCell>
<asp:TableCell runat="server">
<asp:Label ID="uxExtensionLabel" runat="server" Text="Ext." AssociatedControlID="uxExtension" CssClass="controls-label"></asp:Label>
</asp:TableCell>
<asp:TableCell runat="server">
<telerik:RadMaskedTextBox ID="uxExtension" runat="server" Columns="5" Mask="#####" Skin="" CssClass="span1"></telerik:RadMaskedTextBox>
</asp:TableCell>
</asp:TableRow>
</asp:Table>
<asp:HiddenField ID="uxPhoneEntity" runat="server" />
</span>
span을 클릭하면 onclick 이벤트가 발생하므로 작동하지만 페이지의 관련 레이블을 클릭 할 때 발생하지는 않습니다. – jac
@jac - 클릭 이벤트도 라벨에 첨부 했습니까? –
아니요, 레이블을 클릭하고 다른 컨트롤과 연결된 AssociatedControlID 특성이있는 경우 브라우저 동작에 의존합니다. – jac