我对gridview控件有一个问题,也许有人可以帮助我
在gridview中,有一个来自数据库的字段Country
我已启用在gridview中编辑数据,当有人点击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>
答案 0 :(得分:2)
使用SelectedValue
代替SelectedItem
属性。
找到here。
答案 1 :(得分:2)
您是否尝试过为国家/地区创建数据源,然后将DropDownList放入edittemplate并从代码中分配数据源?这将明确地在GridView中创建一个ListItem对象。这是一个使用DataSource的冗长示例:msdn.microsoft.com/en-us/library/ms972948.aspx。