Проблема с CSS - средство выбора календаря ASP.NET - PullRequest
2 голосов
/ 21 апреля 2009

EDIT
С помощью одного из приведенных ниже ответов я смог исправить эту проблему для рендеринга в таблице. Я все еще вижу эту проблему в моих ListViews. Я пробовал этот CSS для ListView, но он не исправил проблему.

/* FIX FOR CALENDAR IN TABLE */
.DateTime_Edit
{
    white-space: nowrap;
}
.DateTime_Edit table
{
    border: solid 0 #FFFFFF;
    width: 0;
    height: 0;
    padding: 0;
    margin: 0;
}
.DateTime_Edit table tr td
{
    border: solid 0 #FFFFFF;
    padding: 0;
    margin: 0;
}
/* LISTVIEW, NOT WORKING */    
.DateTime_Edit table.listview
    {
        border: solid 0 #FFFFFF;
        width: 0;
        height: 0;
        padding: 0;
        margin: 0;  
    }
    .DateTime table.listview tr td
    {
        border: solid 0 #FFFFFF;
        padding: 0;
        margin: 0;  
    }


В РАМКАХ СПИСКА
альтернативный текст http://www.imageunload.com/public/15867/CSSIssue2.png?no_history В СТОЛБЕ
альтернативный текст http://www.imageunload.com/public/15852/CSSIssue.jpg?no_history


Определение шаблона поля:
<%@ Control Language="C#" CodeBehind="DateAjaxCalendar_Edit.ascx.cs" Inherits="WarehouseLogging.DateAjaxCalendar_EditField" %>
<div class="DateTime_Edit">
<asp:TextBox ID="TextBox1" runat="server" Text='<%# FieldValueEditString %>' CssClass="droplist"></asp:TextBox>
<asp:Image runat="Server" CssClass="CalendarIcon" ID="imgCalendar1" ImageUrl="~/Images/calendar.gif" />
<ajaxToolkit:CalendarExtender ID="CalendarExtender1" runat="server" PopupButtonID="imgCalendar1"
    TargetControlID="TextBox1" CssClass="custcal1">
</ajaxToolkit:CalendarExtender>
<ajaxToolkit:FilteredTextBoxExtender ID="fltrTextBox1" runat="server" TargetControlID="TextBox1"
    FilterType="Custom, Numbers" ValidChars="/">
</ajaxToolkit:FilteredTextBoxExtender>
<asp:RequiredFieldValidator runat="server" ID="RequiredFieldValidator1" CssClass="droplist"
    ControlToValidate="TextBox1" Display="Dynamic" Enabled="false" />
<asp:DynamicValidator runat="server" ID="DynamicValidator1" CssClass="droplist" ControlToValidate="TextBox1"
    Display="Dynamic" />
</div>

Ответы [ 4 ]

2 голосов
/ 21 апреля 2009

Другое решение - переопределить эти стили другим именованным стилем. Новый стиль должен появиться после стиля для таблицы, указанной выше, в самом файле .css. (порядок приоритета для css указан в файле .css ...) Наличие определенного стиля для этого элемента управления не позволит другим стилям делать то же самое в будущем.

Я написал этот стиль, поместил его в конец файла Site.css и обернул в него весь свой объект DateTime_Edit FieldTemplate Contorl:

.DateTime_Edit
{
    white-space: nowrap !important;
}
.DateTime_Edit table
{
    border: solid 0 #FFFFFF !important;
    width: 0 !important;
    height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
}
.DateTime_Edit table tr td
{
    border: solid 0 #FFFFFF !important;
    background-color: #FFFFFF !important;
    padding: 0 !important;
    margin: 0 !important;
}

Edit: Добавлен цвет фона в 'td'. Добавлено! Важно для всего (может и не понадобиться)

Надеемся, что файл Site.css по умолчанию будет обновлен в последующих выпусках.

0 голосов
/ 22 апреля 2009

Исправление для этой проблемы находится в проекте предварительного просмотра DD здесь и называется AjaxToolkitFixes.css и находится в корне сайта.

Просто скопируйте в корень своего сайта и добавьте ссылку в файл Site.Master.

0 голосов
/ 22 апреля 2009

Вы можете получить представление о том, как решить вашу проблему, посмотрев этот пост: CSS и переопределяющие стили для вложенных элементов .

0 голосов
/ 21 апреля 2009

РЕДАКТИРОВАТЬ 2

Я бы сказал, что эти парни являются виновниками

body.template table.listview th, table.gridview th, table.detailstable th, body.template table.listview td, table.gridview td, table.detailstable td
{
}

body.template table.listview td, table.gridview td, table.detailstable td
{
}

Они задают стиль, который будет применяться ко всем <td> под таблицей с именами списков классов, подробными таблицами и сетками. Проблема в том, что они также будут наследоваться вложенными таблицами

Вы можете попробовать создать второй набор этих стилей, но изменить их на

table.listview td

до

table.listview td table td

и сбросьте все примененные стили. это переопределит стили во вложенных таблицах, созданных Расширителем Календаря

EDIT

Хорошо, трудно сказать, не видя всей таблицы стилей для таблицы DynamicDataSite, но посмотрите, указан ли CSS для этой таблицы с помощью

Table
{
   //...
}
TD
{
   //...
}

Или используя определенные имена .classnames или # Ids

Если это первое, вам нужно выполнить некоторые CSS Gymnastics, чтобы переопределить стили для вложенных таблиц, чтобы отменить стили, примененные к основной таблице. например,

//Top Level Tables
table td
{
    color: Red;
}

//Nested Tables
table td table td
{
    color: Blue
}

ORIGINAL

Попробуйте поместить CalendarExtender вне таблицы, в которой находится целевой элемент управления. Судя по всему, <td> в средстве выбора наследуют родительскую таблицу CSS.

...