【问题标题】:Can't put Dropdownlist into a Datagrid无法将下拉列表放入 Datagrid
【发布时间】:2015-08-22 16:20:28
【问题描述】:

现在我有一个显示预告片细节的数据网格。我想将 DropDownList 放入 Datagrid 以便可以更改位置,但我不断收到错误:

错误 32 不允许使用文字内容 ('') 在一个 'System.Web.UI.WebControls.DataGridColumnCollection'。 C:\inetpub\wwwroot\test\test\lookups\Trailer.aspx 215

我之前在数据网格中看到过 DropDownLists 的代码示例,为什么会出现此错误? 这是 DataGrid 的代码:

      <asp:DataGrid runat="server" CssClass="tblResults" OnItemDataBound="dgList_ItemCreated" AllowSorting="true" OnSortCommand="dgTrailer_Sort" ID="dgTrailers" DataKeyField="ID" AutoGenerateColumns="false">
                <HeaderStyle CssClass="tblResultsHeader" />
                <AlternatingItemStyle BackColor="#EEEEEE" />
                <Columns>
                    <asp:BoundColumn DataField="TrailerMake" HeaderText="Trailer Make" SortExpression="TrailerMake"></asp:BoundColumn>
                    <asp:BoundColumn DataField="TrailerLocation" HeaderText="Trailer Location" SortExpression="TrailerLocation"></asp:BoundColumn>
                    <asp:BoundColumn DataField="Year" HeaderText="Year" SortExpression="Year"></asp:BoundColumn>

【问题讨论】:

  • 你不见了&lt;/Columns&gt;
  • 对不起,那行在代码中,我一定是在复制时错过了它

标签: html asp.net visual-studio drop-down-menu datagrid


【解决方案1】:

首先,您似乎缺少 Columns 的结束标记。

其次,要添加下拉列表,您必须使用 asp:TemplateColumn 然后将您的数据绑定到该下拉列表:

<asp:DataGrid runat="server" CssClass="tblResults" OnItemDataBound="dgList_ItemCreated" AllowSorting="true" OnSortCommand="dgTrailer_Sort" ID="dgTrailers" DataKeyField="ID" AutoGenerateColumns="false">
            <HeaderStyle CssClass="tblResultsHeader" />
            <AlternatingItemStyle BackColor="#EEEEEE" />
            <Columns>
                <asp:BoundColumn DataField="TrailerMake" HeaderText="Trailer Make" SortExpression="TrailerMake"></asp:BoundColumn>
                <asp:BoundColumn DataField="TrailerLocation" HeaderText="Trailer Location" SortExpression="TrailerLocation"></asp:BoundColumn>
                <asp:BoundColumn DataField="Year" HeaderText="Year" SortExpression="Year"></asp:BoundColumn>
                <asp:TemplateColumn><ItemTemplate><asp:DropDownList ID="ddlList" runat="server" /></ItemTemplate></asp:TemplateColumn>
            </Columns>
        </asp:DataGrid>

【讨论】:

  • 好的,谢谢,我没有错误了。所以我将 id 设置为 ddlTrailerLocation。我已经在代码的另一部分使用了这个下拉列表。但是下拉列表仍然没有显示在数据网格中。另外我还需要&lt;asp:BoundColumn DataField="TrailerLocation" HeaderText="Trailer Location" SortExpression="TrailerLocation"&gt;&lt;/asp:BoundColumn&gt; 行吗?或者可以将其删除吗?
【解决方案2】:

首先您必须将列转换为模板,然后您可以将下拉列表添加到此模板中并将您的数据绑定到下拉列表。最后,带有下拉列表的列将如下所示。

<Columns>
   <asp:TemplateField>                 
     <ItemTemplate>
          <asp:DropDownList ID="DropDownList1" runat="server" Height="32px" Width="178px">
        </asp:DropDownList>
     </ItemTemplate>
 </asp:TemplateField>             
 </Columns>

【讨论】:

  • &lt;asp:TemplateField&gt; 导致我之前遇到的相同错误
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-01
  • 2016-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多