Динамическое изменение размера шаблона редактирования сетки в зависимости от размера шаблона элемента

#templates #gridview #dynamic #size #width

#шаблоны #просмотр сетки #динамический #размер #ширина

Вопрос:

У меня есть GridView, который отображает данные до 30 столбцов. Иногда это приводит к тому, что сетка расширяется до ширины, соответствующей горизонтальной полосе прокрутки, но не всегда. Длина данных в столбцах также варьируется, и я не хочу устанавливать конкретную ширину, приятно, что сетка маленькая, если половина столбцов пуста.

Проблема в том, что когда я вхожу в режим редактирования, метки заменяются текстовыми полями, и они занимают больше ширины, и вся таблица изменяет свои размеры.

Есть ли какой-либо способ сохранить шаблон элемента и его метки без фиксированного размера, но в то же время всегда следить за тем, чтобы шаблон редактирования имел одинаковый размер.

Я думал о чем-то подобном этому:

При «событии входа в режим редактирования» отредактируйте текстовое поле templatetextbox.Width = CurrentItemTemplate.Ширина;

Ответ №1:

Я смог предотвратить изменение размера моего GridView при переключении в режим редактирования (за исключением новых добавляемых столбцов «Обновить» и «Отменить»), используя этот CSS:

 table input
{
    width: 95%;
}
  

Вы можете использовать 100%, если хотите, но 95% дают небольшой интервал между ячейками.

Кроме того, если у вас есть другие таблицы на странице, на которые вы не хотите, чтобы это влияло, присвоите вашему GridView CssClass и замените ‘table’ именем вашего css-класса следующим образом:

 <asp:GridView ... CssClass="myGridView">

.myGridView input
{
    width: 95%;
}