Я новичок в asp.net, и мне нужна помощь, пожалуйста. Я использую C# и sql.Как связать dropdownlist в подробном представлении с другой таблицей
Что я хочу сделать следующее: У меня есть подробный вид, где я могу использовать его для добавления сотрудников и сохранения его в моей базе данных в таблице Employee. В представлении деталей I'v создал поле шаблона для dept_id (это поле является внешним ключом). Я хочу сделать это как раскрывающийся список, в котором вы можете выбрать название отдела (которое находится в таблице Департамента) вместо ввода идентификатора отдела. Я очень придерживаюсь этого. Любая помощь будет оценена.
Это .aspx
<asp:DetailsView ID="DetailsView2" runat="server" AutoGenerateRows="False"
CellPadding="4" DataKeyNames="Emp_Id" DataSourceID="SqlDataSource3"
DefaultMode="Insert" ForeColor="#333333" GridLines="None" Height="50px"
Width="149px">
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
<CommandRowStyle BackColor="#E2DED6" Font-Bold="True" />
<EditRowStyle BackColor="#999999" />
<FieldHeaderStyle BackColor="#E9ECF1" Font-Bold="True" />
<Fields>
<asp:BoundField DataField="Emp_Id" HeaderText="Emp_Id" InsertVisible="False"
ReadOnly="True" SortExpression="Emp_Id" />
<asp:BoundField DataField="FirstName" HeaderText="FirstName"
SortExpression="FirstName" />
<asp:BoundField DataField="LastName" HeaderText="LastName"
SortExpression="LastName" />
<asp:BoundField DataField="EndUser" HeaderText="EndUser"
SortExpression="EndUser" />
<asp:TemplateField HeaderText="Dept_id" SortExpression="Dept_id">
<EditItemTemplate>
<asp:DropDownList ID="DropDownList2" runat="server" DataSourceID="ddlSqlDataSource"
DataTextField="dept_name" DataValueField="dept_id" SelectedValue='<%# Bind("dept_id") %>'>
</asp:DropDownList>
</EditItemTemplate>
<InsertItemTemplate>
<asp:DropDownList ID="DropDownList2" runat="server" DataSourceID="ddlSqlDataSource"
DataTextField="dept_name" DataValueField="dept_id" SelectedValue='<%# Bind("dept_id") %>'>
</asp:DropDownList>
</InsertItemTemplate>
<ItemTemplate>
<asp:Label ID="Label5" runat="server" Text='<%# Bind("Dept_id") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Email" HeaderText="Email" SortExpression="Email" />
<asp:BoundField DataField="title" HeaderText="title" SortExpression="title" />
<asp:TemplateField HeaderText="JoinDate" SortExpression="JoinDate">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("JoinDate") %>' TextMode="Date"></asp:TextBox>
</EditItemTemplate>
<InsertItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("JoinDate") %>' TextMode="Date"></asp:TextBox>
</InsertItemTemplate>
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Bind("JoinDate") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:CommandField ButtonType="Button" ShowInsertButton="True" />
</Fields>
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
</asp:DetailsView>
Я не знаю, что я должен добавить в точности (ddlSqlDataSource)
<asp:SqlDataSource ID="ddlSqlDataSource" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="SELECT [dept_name] FROM [Department]">
</asp:SqlDataSource>
Чтобы сделать это легче на себя, просто перейдите в поле зрения дизайна вашей страницы, и выделить/нажмите один элемент управления, который вы пытаетесь добавить источник данных ... когда вы это сделаете, в правом верхнем углу появится небольшая стрелка, которая откроет меню, которое поможет сделать это за вас , –
Во-первых, спасибо за ваш ответ. Ну, в нормальных ситуациях я делаю это так, но элемент управления, который я пытаюсь добавить источник данных для (dropdownlist), находится внутри представления деталей, и его нельзя щелкнуть. Только просмотр сведений можно щелкнуть @Gavin –