Относительно: «слишком широк». Мне нужно следующее поведение: я хочу создать класс, который наследует gridview, объявить экземпляры этого класса на моих страницах, всегда объявлять значение для «DataKeyNames» при настройке экземпляра и автоматически скрывать класс (сделать невидимым ) любая строка, в которой значение в поле «DataKeyNames» = -1, так что строка технически существует, но не отображается (что позволяет обойти проблему с нижними колонтитулами gridview, которые отображаются только при наличии хотя бы одной существующей строки).

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

Я пробовал классы, которые были найдены в другом месте в stackoverflow, но код, который я обнаружил, по-видимому, глючит (он либо работает, когда нижняя строка является единственной строкой, либо работает, когда нижняя строка не является единственной строкой, но никогда обеими. к тому, что у меня есть выпадающие списки в моих рядах). Эта проблема была объяснена здесь:Странная проблема с настраиваемым контролем сетки

Сам класс также проблематичен в том смысле, что форматирование немного испорчено, когда нижняя строка является единственной строкой. Это просто выглядит неправильно ... форматирование цвета прошло.

Итак, теперь я думаю, что я действительно хочу сделать, это переписать источники данных, чтобы они основывались на запросах UNION, чтобы в столбце ключа всегда была одна пустая строка с -1 (мои таблицы всегда имеют один инкрементный первичный ключ таким образом, ни одна допустимая строка никогда не будет иметь -1 в ключевом столбце), а затем будет иметь класс, который автоматически скрывает любую строку, где значение в поле «DataKeyNames» равно -1.

Проблема: я понятия не имею, как это сделать. :) Я знаю, как сделать это в коде aspx.cs (событие RowDataBound - if (условие) {e.Row.Visible = false;}), и я знаю, как это сделать с помощью CSS, но я не знаю знать, как сделать это автоматически в расширенном классе. Боюсь, я немного растерялся, когда дело доходит до написания расширенных классов.

Подводя итог, я хотел бы добавить расширенный класс gridview в мой aspx-код, установить обычные параметры gridview, и в моем коде есть только одна дополнительная вещь - добавление «UNION SELECT» в моем источнике данных, и он просто автоматически скрывает строку, предоставленную UNION SELECT, так что всегда есть хотя бы одна строка в виде сетки (таким образом, заботясь о том, чтобы вся нижняя строка не показывала проблему), без необходимости каждый раз кодировать что-либо дополнительное в событии RowDataBound , потому что у меня есть эти элементы управления gridview ВЕЗДЕ в моем коде.

Большое спасибо за любую помощь, вы можете предоставить! :)

Ответы на вопрос(0)

Ваш ответ на вопрос