Ссылка на внешний ключ в JQGrid - PullRequest
0 голосов
/ 03 марта 2012

Я спроектировал мою модель представления jqgrid следующим образом,

public class DomainJQGrid
{
    public JQGrid DomainsGrid { get; set; }

    public DomainJQGrid()
    {
        DomainsGrid = new JQGrid
        {
            Columns = new List<JQGridColumn>()
            {
                new JQGridColumn
                { 
                    DataField = "DomainId",
                    PrimaryKey = true,
                    Editable = false,
                    HeaderText = "Domain ID",
                    Visible = false                        
                },
                new JQGridColumn
                {
                    DataField = "ClientId",
                    Editable = false,
                    Width = 150,
                    HeaderText = "Client"
                },
                new JQGridColumn
                {
                    DataField = "DomainName",
                    Editable = false,
                    Width = 150,
                    HeaderText = "Domain Name"
                },
                new JQGridColumn
                {
                    DataField = "Registered",
                    Editable = true,
                    Width = 100,
                    DataFormatString = "{0:d}",
                    HeaderText = "Registered",
                }

            },
            AutoWidth = true,
        };
        DomainsGrid.ToolBarSettings.ShowRefreshButton = true;
    }
}

И я связываю источник данных с использованием моего контроллера следующим образом.

return gridModel.DomainsGrid.DataBind(hmEntity.DomainProducts);

в приведенной выше модели вместо моего ClientId , как я могу вывести ClientName из моей таблицы клиентов?

1 Ответ

2 голосов
/ 04 марта 2012

Если я правильно понимаю, вы хотели бы иметь возможность определить столбец, который использует свойство свойства объекта.

Предполагая, что у вас есть свойство типа Client с именем Client, вы захотите сделать что-то вроде:

DataField = "Client.ClientName"

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

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

Если вы хотите перенести такое же бремя :), добавьте это в свой класс DomainProduct (опять же, при условии, что у вас есть свойство Client):

[NotMapped]
public string ClientName
{
    get { return Client == null ? "" : Client.ClientName; }
}

А затем просто используйте ClientName для значения поля данных.

...