Привязка данных к метке в DetailView

У меня есть две таблицы в базе данных.

Tables:
       email
            -typeId     **Foreign Key**
            -mxRecord
            -clientId
       emailType
            -typeId     **Primary Key**
            -typeName

То, что я пытаюсь сделать, это в Detailview, который отображает таблицу "электронная почта", вместо того, чтобы показывать число для "typeId", я хотел бы, чтобы он отображал значение "typeName".

The contents of the tables:

email
        typeId      mxRecord     clientId
           1          NULL           1
           3          NULL           2
           2          NULL           3

emailType
        typeId      typeName
           1        Exchange
           2          POP3
           3         Hosted

Я добавил выпадающий список для выбора подходящего клиента. (@i1 - ссылка на раскрывающийся список)

SQL:
     SELECT emailType.*, email.* FROM email 
     INNER JOIN emailType ON email.typeId = emailType.typeId 
     WHERE email.clientId = @i1

Подробное представление выглядит следующим образом:

type       1
mxRecord   NULL
clientId   1

и я хочу, чтобы это выглядело так...

type       Exchange
mxRecord   NULL
clientId   1

1 ответ

Решение

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

Переключитесь на исходный вид, и вы легко сможете сделать так:

   <asp:DetailsView ID="DetailsView1" runat="server" Height="50px" Width="125px" 
        AutoGenerateRows="False" DataKeyNames="typeId, clientId" 
        DataSourceID="SqlDataSource1">
        <Fields>
            <asp:BoundField DataField="typeName" HeaderText="type" 
                InsertVisible="False" ReadOnly="True" SortExpression="typeName" />
            <asp:BoundField DataField="mxRecord" HeaderText="mxRecord" 
                InsertVisible="False" ReadOnly="True" SortExpression="mxRecord" />
            <asp:BoundField DataField="clientId" HeaderText="clientId" 
                InsertVisible="False" ReadOnly="True" SortExpression="clientId" />
        </Fields>
    </asp:DetailsView>
Другие вопросы по тегам