这个问题其实是两个问题。我需要生成一个网格视图,其中一列是下拉选择。
我有以下代码:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="ProjectsODS" OnRowUpdated="GridView1_RowUpdated" DataKeyNames="Id"
CssClass="mGrid"
PagerStyle-CssClass="pgr"
AlternatingRowStyle-CssClass="alt" ShowHeaderWhenEmpty="True" OnRowEditing="GridView1_RowEditing">
<Columns>
<asp:BoundField DataField="Name" HeaderText="Project Name" />
<asp:BoundField DataField="ProjectCode" HeaderText="Code" />
<asp:TemplateField HeaderText="Access">
<ItemTemplate>
<asp:DropDownList runat="server" AutoPostBack="True">
<asp:ListItem
Enabled="True"
Text="No Access"
Value="Test" />
<asp:ListItem
Enabled="True"
Text="Read Only"
Value="Tes 2" />
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
最后一列确实是一个下拉列表。但是,目前,我正在对其中的项目进行硬编码,以查看它将如何呈现。我需要实际绑定来自另一个 ObjectDataSource 的值。但是对于网格中的每一行,它是相同的数据。它会命中每一行的 ODS,还是将数据读入 ODS 一次,并由每一行使用?
如何将 ODS 链接到 DropDownLists?
那么,如何将选定的值设置为行中的值?也就是说,生成gridview 的数据源有一个名为“AccessTypeId”的字段。我需要使用该值来选择 DDL 的值。我该怎么做?
然后,我将 AutoPostBack 设置为 true。一旦 DDL 获得用户设置的新值,我希望它发布该值。但是,当 DDL 选择的值改变时,即使在 Grid 上也会调用什么?