4

当我使用 ASP:Calendar 控件并给它一个 ID 时:

<asp:Calendar runat="server" ID="MyCal" />

在呈现的 html 中看起来像这样:

<table id="NameMangled_MyCal"... />

我可以通过 javascript 中的 ID 访问元素,如下所示:

var cal= document.getElementById("<%= MyCal.ClientID%>")

但是,当我制作具有日历的自定义用户控件时:

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="WeeklyEventsCalendar.ascx.cs"
    Inherits="WeeklyEventsCalendar" %>

<div>
    <asp:Calendar runat="server" ID="InnerCal" Width="100%" OnDayRender="RenderCell" OnVisibleMonthChanged="ChangeMonth" Height="480px" />
</div>

然后在我将它添加到我的页面时给它一个 ID...

<mvs:WeeklyEventsCalendar ID="WeeklyCal" runat="server" />

该 ID 不会出现在呈现的 HTML 中的任何位置。我得到的只是

<div> stuff </div>

当我想要

<div id="NameMangled_WeeklyCal"> stuff <div>

我究竟做错了什么?

4

1 回答 1

12

UserControls 只呈现它们的内容,没有别的。你能做的是

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="WeeklyEventsCalendar.ascx.cs"
    Inherits="WeeklyEventsCalendar" %>

<div id="<%= this.ControlID %>">
    <asp:Calendar runat="server" ID="InnerCal" Width="100%" OnDayRender="RenderCell" OnVisibleMonthChanged="ChangeMonth" Height="480px" />
</div>
于 2008-10-16T19:40:12.077 回答