如何在GridView EditTemplate中设置DropDownList的SelectedValue

Sha*_*pta 8 c# asp.net data-binding sqldatasource

我试图做到正如前面问道.我找到的唯一区别是上面代码中包含的附加List项.

我试图使用,AppendDataBoundItems=true但它仍然无法正常工作.我还想将其默认值设置为itemtemplate标签中显示的值,即DropDownList,SelectedValue='<%# Eval("DepartmentName") %>'但是我在下拉列表中无法使用该属性.可能是什么原因.??

<EditItemTemplate>
    <asp:DropDownList ID="ddlDepartment_Edit" runat="server" 
        DataSourceID="dsDepartment_Edit" DataTextField="DepartmentName" 
        DataValueField="PK_DepartmentId">
    </asp:DropDownList>
    <asp:SqlDataSource ID="dsDepartment_Edit" runat="server" 
        ConnectionString="<%$ ConnectionStrings:BlackHillsConnect %>"  
        ProviderName="System.Data.SqlClient" SelectCommand="sp_GetDepartmentDropDown" 
        SelectCommandType="StoredProcedure">
    </asp:SqlDataSource>                                 
</EditItemTemplate>
<ItemTemplate>
    <asp:Label ID="lblDepartmentName" runat="server" Text='<%# Eval("DepartmentName") %>' >
    </asp:Label>
</ItemTemplate>   
Run Code Online (Sandbox Code Playgroud)

我在用 GridView

Vin*_*ayC 8

DataValueField似乎是错的 - 不应该是DepartmentId吗?同样,你需要 SelectedValue='<%# Eval("**DepartmentId**") %>'- DepartmentName将是SeletectText.

  • 这是我遇到麻烦的地方.没有这样的属性对我来说是可见的,即SelectedValue或SelectedText,以便我可以为它们分配一些值.关于DataValueField,是的,你是对的它应该是主键.但在我可以使用这两个属性之前,这不是讨论的一部分. (2认同)
  • VS Designer可能不会向您展示智能属性,而是它的存在.有两个属性 - SelectedValue和SelectedIndex.如果您编写SelectedIndex ='<%#Eval('DepartmentId')%>'会发生什么? (2认同)