当我使用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>
我做错了什么?
答案 0 :(得分: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>