Получение имени связанного поля во время выполнения - PullRequest
1 голос
/ 03 октября 2009

Если вы связываете элемент управления в FormView, используя двухстороннее связывание (например, Text = '<% #Bind ("FieldName")%>'), как получить имя поля "FieldName"? Есть несколько вещей, которые я хочу сделать с этой информацией; Например, у меня есть таблица базы данных, которая содержит дамп всех определений полей из ERWin, и я хочу программно создать некую контекстно-зависимую справку для каждого отдельного поля (сотни разбросаны по десяткам форм).

Это в значительной степени точная копия вопроса, заданного год назад , но ответ не имел для меня особого смысла. Во-первых, ответ, казалось, был для GridView, а не для FormView (e.Row.Cells [0] отдал его). Во-вторых, какое отношение SortExpression имеет к чему-либо? В-третьих, в нем упоминается аргумент события, но для какого события? В OnDataBound EventArgs e пусто.

Ответы [ 2 ]

1 голос
/ 16 октября 2009

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

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

Что касается ответа на ваш последний вопрос - GridView сохраняет имя столбца в свойстве SortExpression, чтобы он знал, по какому столбцу сортировать, когда пользователь восстанавливает сетку. Следовательно, в GridView вы можете получить доступ к имени столбца через выражение SortExpression.

0 голосов
/ 03 октября 2009

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

...