自动填充Detailsview使用下拉列表中的值插入文本框

时间:2014-06-05 21:58:45

标签: c# asp.net sql detailsview

我正在尝试在详细信息视图处于插入模式时自动填充字段clientId的文本框。

它需要像这样结束......     http://s7.postimg.org/o7d48cfvv/Untitled.png

name *textbox*
address *textbox*
phone *textbox*
email *textbox*
clientId *AUTOPOPULATED* - based on dropdownlist1.value

我环顾四周,无法在任何地方找到解决方案。

谢谢!

1 个答案:

答案 0 :(得分:0)

要实现这一点,您需要将您的detailsview控件上的最后一个字段(clientId)作为模板字段,然后将InsertItemTemplate的值设置为下拉列表的值,以下是您的示例:

您的.aspx网络表单: //例如。这是你的下拉列表

 <asp:DropDownList ID="DropDownList1" runat="server">
                    <asp:ListItem>id1</asp:ListItem>
                    <asp:ListItem>id2</asp:ListItem>
                    <asp:ListItem>id3</asp:ListItem>
                </asp:DropDownList>

//例。您的详细信息视图控件

 <asp:DetailsView ID="DetailsView1" runat="server" Height="50px" Width="125px" DataSourceID="SqlDataSource1" AutoGenerateRows="False">
                    <Fields>
                        <asp:BoundField DataField="Firstname" HeaderText="Firstname" SortExpression="Firstname" />
                        <asp:BoundField DataField="Address" HeaderText="Address" SortExpression="Address" />
                        <asp:BoundField DataField="Suburb" HeaderText="Suburb" SortExpression="Suburb" />
                        <asp:BoundField DataField="State" HeaderText="State" SortExpression="State" />
                        <asp:BoundField DataField="Postcode" HeaderText="Postcode" SortExpression="Postcode" />
                        <asp:BoundField DataField="MPhone" HeaderText="MPhone" SortExpression="MPhone" />
                        <asp:TemplateField HeaderText="Username" SortExpression="Username">
                            <EditItemTemplate>
                                <asp:Label runat="server" Text='<%# Eval("Username") %>' ID="Label1"></asp:Label>
                            </EditItemTemplate>
                            <InsertItemTemplate>
                                <asp:TextBox runat="server" Text='<%# DropDownList1.SelectedItem.Value %>' ID="TextBox1"></asp:TextBox>
                            </InsertItemTemplate>
                            <ItemTemplate>
                                <asp:Label runat="server" Text='<%# Bind("Username") %>' ID="Label1"></asp:Label>
                            </ItemTemplate>
                        </asp:TemplateField>

                        <asp:CommandField ShowInsertButton="True"></asp:CommandField>
                    </Fields>
                </asp:DetailsView>

所以当您从上面的下拉列表中选择一个值并单击您的detailsviewcontrol上的新命令时,它将从列表中提取值并将其作为值绑定到文本框,如下面的快照:

enter image description here