1

У меня есть объект со следующими полями в классе на стороне сервера метаданных:RIA переопределение метаданных на клиенте

Partial Friend Class CustomerMetadata 
    <Required()> _ 
    <Display(Order:=1, Name:="First Name")> _ 
    Public Property FirstName As String 

    <Required()> _ 
    <Display(Order:=2, Name:="Last Name")> _ 
    Public Property LastName As String 

    <Required()> _ 
    <Display(Order:=3, Description:="Phone")> _ 
    Property DisplayPhone As String 

    <Required()> _ 
    <Display(Order:=4, Name:="Email Address")> _ 
    Public Property EmailAddress As String 
End Class 

Теперь в клиенте, я хочу поменять порядок отображения телефона и электронной почты поля адреса в сетке, поэтому я создаю новый класс на стороне клиента CustomerMetadata, как например:

Partial Friend Class CustomerMetadata 
    <Required()> _ 
    <Display(Order:=4, Description:="Phone")> _ 
    Property DisplayPhone As String 

    <Required()> _ 
    <Display(Order:=3, Name:="Email Address")> _ 
    Public Property EmailAddress As String 
End Class 

клиент не забрать заказ перекрытый дисплея. Любые идеи о том, как переопределить атрибут Display в классе метаданных на стороне клиента?

ответ

2

Невозможно переопределить метаданные в клиенте, установленном на сервере.

В частности, концепция классов метаданных RIA Services является серверной и используется только при использовании Entity Framework с использованием подхода, основанного на модели, где у вас есть дизайнер, создающий классы сущностей). Атрибуты, которые вы помещаете в классы метаданных на сервере, будут автоматически генерироваться во время сборки в качестве атрибутов на фактических объектах на клиенте.

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

  1. Укажите столбцы в сетью явно (в конце концов, вы, вероятно, должны в любом случае по целому ряду причин, автоматически генерируемые столбцы на практике редко бывают достаточными) или
  2. используют одинаковый заказ как на клиентском, так и на сервере.

(Ради завершения я должен упомянуть, что вы также можете поиграться с тем, как код клиента RIA Services автоматически генерируется, но это было бы неуместно для этой проблемы вы имеете.)

+0

Это в значительной степени я понял, но я надеюсь. , , :) –