ListView

时间:2016-04-18 08:33:15

标签: asp.net listview linqdatasource

我在ListView中有一个DropDownList。 ListView显示公司的员工,DDL列出可以分配给他们的组。

我使用了2个独立的数据源。一个列出员工,一个列出组。它看起来很好,但每当我尝试更新组时,它都不会注册。

如何确保DDL是员工更新查询的一部分,即使它已连接到另一个数据源?

我在这里找不到任何相关内容。感谢您的时间,谢谢。 :)

数据源:

                <asp:LinqDataSource 
                    ID="LinqDataSource_Employees" 
                    runat="server" 
                    ContextTypeName="Blabla.bla.myContext" 
                    EntityTypeName="" 
                    OrderBy="Group_ID, DisplayName" 
                    TableName="Employees" 
                    EnableDelete="True" 
                    EnableInsert="True" 
                    EnableUpdate="True">
                </asp:LinqDataSource>

                <asp:LinqDataSource 
                    ID="LinqDataSource_Groups" 
                    runat="server" 
                    ContextTypeName="Blabla.bla.myContext" 
                    EntityTypeName="" 
                    Select="new (ID, Name)" 
                    TableName="Groups">
                </asp:LinqDataSource>

EditItemTemplate中:

<EditItemTemplate>
                        <tr style="">
                            <td>
                                <asp:Button ID="UpdateButton" runat="server" CommandName="Update" Text="Update" />
                                <asp:Button ID="CancelButton" runat="server" CommandName="Cancel" Text="Cancel" />
                            </td>
                            <td>
                                <asp:Label ID="ID_UserNameLabel" runat="server" Text='<%# Eval("ID_UserName") %>' />
                            </td>
                            <td>
                                <asp:TextBox ID="DisplayNameTextBox" runat="server" Text='<%# Bind("DisplayName") %>' />
                            </td>
                            <td>
                                <asp:TextBox ID="EmailAddressTextBox" runat="server" Text='<%# Bind("EmailAddress") %>' />
                            </td>
                            <td>
                                <asp:TextBox ID="PhoneNumberTextBox" runat="server" Text='<%# Bind("PhoneNumber") %>' />
                            </td>
                            <td>
                                <asp:DropDownList ID="GroupDropDownList" runat="server" DataSourceID="LinqDataSource_Groups" DataTextField="Name" DataValueField="ID" />
                            </td>
                        </tr>
                    </EditItemTemplate>

1 个答案:

答案 0 :(得分:0)

经过更多digging之后,我发现了如何继续的线索。

事实证明,如果你在Property SelectedValue 上使用Bind,它将绑定到ListView的DataSource,而不是在DataSource属性中以声明方式设置的那个。 :)

<asp:DropDownList 
 ID="GroupDropDownList" 
 runat="server" 
 DataSourceID="LinqDataSource_Groups" 
 DataTextField="Name" 
 DataValueField="ID" 
 SelectedValue='<%# Bind("Group_ID") %>' />

希望这有助于某人。 :)