【发布时间】:2010-09-24 17:45:20
【问题描述】:
我有一个看起来像这样的 DataGrid(这里稍微简化了):
<asp:DataGrid ID="grdQuotas" runat="server" AutoGenerateColumns="False">
<HeaderStyle CssClass="quotas-header" />
<Columns>
<asp:TemplateColumn>
<HeaderTemplate>
Max order level</HeaderTemplate>
<ItemTemplate>
<asp:DropDownList ID="ddlMaxOrderLevel" runat="server" DataSourceID="xdsOrderLevel"
DataTextField="Text" DataValueField="Value" SelectedValue='<%# Bind("MaxOrderLevel") %>'>
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
<asp:XmlDataSource ID="xdsOrderLevel" runat="server" DataFile="~/App_Data/OrderLevels.xml">
</asp:XmlDataSource>
在我的Page_Load 事件处理程序中,我正在创建一个包含默认值的DataTable,并将其DataBinding 到DataGrid。
问题是这发生在 之前 DropDownList ddlMaxOrderLevel 已绑定到其 DataSource,所以我收到一个运行时错误,告诉我SelectedValue 无法设置。
如果 ddlMaxOrderLevel 不在 DataGrid 中,我可以直接调用 DataBind()。但是在这种情况下我不能这样做 - 因为它在 ItemTemplate 中。
任何人都可以提出解决方法或替代方法吗?
【问题讨论】:
标签: asp.net data-binding datagrid webforms drop-down-menu