Привязка данных к метке в 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>