我正在开发一个ASP.Net应用程序,后面的代码为C#。在aspx页面中,有一个gridview控件。一列包含下拉列表,如下所示:
<asp:GridView ID="gvModulesSem1" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:TemplateField HeaderText="Grade" HeaderStyle-HorizontalAlign="Left" HeaderStyle-CssClass="gvModulesTextPadding">
<ItemStyle Width="120px" CSSClass="gvModulesTextPadding" />
<ItemTemplate>
<asp:DropDownList ID="ddlSelectGrade" Text='<%# Eval("Grade")%>' runat="server">
<asp:ListItem Value="-1.0">Select Grade</asp:ListItem>
<asp:ListItem Value="Distinction">Distinction</asp:ListItem>
<asp:ListItem Value="A">A</asp:ListItem>
<asp:ListItem Value="B+">B+</asp:ListItem>
<asp:ListItem Value="B">B</asp:ListItem>
<asp:ListItem Value="C+">C+</asp:ListItem>
<asp:ListItem Value="C">C</asp:ListItem>
<asp:ListItem Value="D+">D+</asp:ListItem>
<asp:ListItem Value="D">D</asp:ListItem>
<asp:ListItem Value="P">P</asp:ListItem>
<asp:ListItem Value="F">F</asp:ListItem>
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
还有一些其他列,所有列都包含标签。但是,为了简单起见,我删除了其他列的代码。
在页面加载中,当Page.IsPostBack为false时,GridView绑定到DataTable(已填充)。这将填充GridView。所有DropDownLists都有第一项,即选择“选择成绩”。
作为用户,我更改了下拉列表中的选定项目。然后单击一个按钮(网格外)。在按钮单击事件过程中,当我尝试读取任何下拉列表中的选定项目时,我发现它始终是第一个项目。
如何更正此问题? 谢谢。