日历扩展程序无法正确显示

时间:2012-08-27 13:04:22

标签: asp.net-ajax calendarextender

我在我的页面上使用了ajax日历扩展程序控件,虽然扩展程序块正确显示,但它的内容却没有:

Screenshot of CalendarExtender

以下是我用于将其写入页面的代码:

<table class="tblForm">
    <tr>
        <td valign="top">
            <asp:TextBox runat="server" ID="txtPickupDate" AutoPostBack="true"></asp:TextBox>
            <aj:CalendarExtender runat="server" ID="calPickup" TargetControlID="txtPickupDate" Format="yyyy-MM-dd">
            </aj:CalendarExtender>
        </td>
    </tr>
</table>

没有任何样式规则直接应用于CalendarExtender,但我确实有这个css可能是相关的:

.tblForm
{
    display: block;
}
.tblForm td
{
    width: 245px;
    float: left;
}

有没有人见过这个?有谁知道它可能是什么?

提前感谢您的帮助!

修改
我已经尝试删除浮动,虽然它修复了CalendarExtender,但它也会移动容器表中的每个单元格不对齐。我也尝试将clear: both;设置为CalendarExtender,但这会让它的背景消失。

2 个答案:

答案 0 :(得分:5)

好的,我已经弄明白了:)

表格单元格的CSS出现了问题。修改单元格的宽度也修改了由Calender Extender写入的表格内单元格的宽度。

为了解决这个问题,我删除了表格中的所有浮点数及其子元素,并声明了一个新类来设置宽度,然后从包含日历的单元格中省略该宽度:

.tblForm 
{
    display: block;
}
.tblForm tr.wider td, tblForm .wider
{
    width: 245px;
}

答案 1 :(得分:3)

我在ListView对象中遇到类似日历扩展器的问题。由于造型问题,它总是在周五和周六切断。我最终通过包装我的日历扩展器(包括文本框和图像)来绕过它,并为它们分配一个覆盖我的表的CSS的样式。

#calendarContainerOverride table
{
    width:0px;
    height:0px;
}

#calendarContainerOverride table tr td
{
    padding:0;
    margin:0;
}

然后在这里应用id:

<tr id="calendarContainerOverride">
  <td style="padding-top:10px">    
    <asp:TextBox ID="txtStart" runat="server" %>' />
    <asp:CalendarExtender ID="extender" runat="server" Enabled="True" TargetControlID="txtStart" PopupButtonID="imgCalendarStart" />
    <asp:Image ID="imgCalendarStart" ImageUrl="~/Images/Calendar.png" runat="server"/>
  </td>
</td>

使用此方法,您无需更改所有表格的样式,只需专注于讨厌的日历。