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 に答える