■No56576 (あや さん) に返信
> でうまくいくのですが、マスターページを使用するとID名が
> 「ctl00$ContentPlaceHolder1$txtUpdDate」となりIDが一致せずカレンダーが動作しません。
ID における ctl00 がマスターページで、ContentPlaceHolder1 がコンテンツページですかね。
マスターページを使用するコンテンツページに TextBox コントロール txtUpdDate を配置して
いらっしゃいますか。
> このような場合はどのように実装するのでしょうか?
インライン式で TextBox.ClientID プロパティを参照するとよいです。
対象の TextBox を参照する必要があるので、JavaScript をコンテンツページに記述するか、
マスターページに記述するかによって実装は異なります。
コンテンツページに JavaScript を記述するならば、こんな感じです。
[WebForm.aspx]
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<asp:TextBox ID="txtUpdDate" runat="server" Width="80px" MaxLength="10" CssClass="ime-disabled"></asp:TextBox>
<script type="text/javascript">
$("#<%= txtUpdDate.ClientID %>").datepicker({・・・・・})
</script>
</asp:Content>
マスターページに JavaScript を記述するならば、こんな感じです。
[Site.Master]
<form id="form1" runat="server">
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
</form>
<script type="text/javascript">
$('#<%= ContentPlaceHolder1.FindControl("txtUpdDate").ClientID %>').datepicker({・・・・・})
</script>