edititemtemplate gridview asp.net中的下拉列表

时间:2011-12-06 18:31:51

标签: c# asp.net drop-down-menu

我对gridview控件有一个问题,也许有人可以帮助我 在gridview中,有一个来自数据库的字段Country 我已启用在gr​​idview中编辑数据,当有人点击gridview编辑按钮时,gridview将出现并提供他们为该字段选择新值。

但是当我点击编辑时,我收到此错误:

  

在Assembly'System.Web中输入'System.Web.UI.WebControls.ListItem',Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'未标记为可序列化。'

以下是该字段的代码,缩写版本,不包括示例中的大部分国家/地区:

<asp:TemplateField HeaderText="Country" SortExpression="Country">
    <ItemTemplate>
        <asp:Label ID="Label1" runat="server" 
                   Text='<%# Bind("Country") %>'>
        </asp:Label>
    </ItemTemplate>
    <EditItemTemplate>
        <asp:DropDownList id="ddlCountry" 
                          SelectedItem='<%# Bind("Country") %>' 
                          runat="server">
            <asp:ListItem Value="N/A">Please select</asp:ListItem>
            <asp:ListItem Value="US">United States</asp:ListItem>
            <asp:ListItem Value="AF">Afghanistan</asp:ListItem>
            <asp:ListItem Value="AL">Albania</asp:ListItem>
            <asp:ListItem Value="DZ">Algeria</asp:ListItem>
            <asp:ListItem Value="AS">American Samoa</asp:ListItem>
            <asp:ListItem Value="AD">Andorra</asp:ListItem>
            <asp:ListItem Value="AO">Angola</asp:ListItem>
            <asp:ListItem Value="AI">Anguilla</asp:ListItem>
            <asp:ListItem Value="AQ">Antarctica</asp:ListItem>
            <asp:ListItem Value="AG">Antigua And Barbuda</asp:ListItem>
            <asp:ListItem Value="AR">Argentina</asp:ListItem>
            <asp:ListItem Value="AM">Armenia</asp:ListItem>
            <asp:ListItem Value="AW">Aruba</asp:ListItem>
            <asp:ListItem Value="AU">Australia</asp:ListItem>
            <asp:ListItem Value="AT">Austria</asp:ListItem>
            <asp:ListItem Value="ZR">Zaire</asp:ListItem>
            <asp:ListItem Value="ZM">Zambia</asp:ListItem>
           <asp:ListItem Value="ZW">Zimbabwe</asp:ListItem>   
        </asp:DropDownList>
    </EditItemTemplate>

2 个答案:

答案 0 :(得分:2)

使用SelectedValue代替SelectedItem属性。

找到here

答案 1 :(得分:2)

您是否尝试过为国家/地区创建数据源,然后将DropDownList放入edittemplate并从代码中分配数据源?这将明确地在GridView中创建一个ListItem对象。这是一个使用DataSource的冗长示例:msdn.microsoft.com/en-us/library/ms972948.aspx。