我正在对网格视图中的编码质询进行故障排除,我试图将Ajax Control Toolkit中的CollapsiblePanelExtender(在Visual Studio 2012中)插入到复选框的一部分中。我希望做的是使整个复选框部分在用户请求时折叠和展开。
我面临的挑战(asp代码在下面 - 没有cs代码)是在代码的“< asp:Panel ID =”pnlClick“...”部分下面有一条绿色的波浪线'Panel'和'CheckBoxField'的每个实例下都有以下错误(从调试输出中注明):
Element 'Panel' is not a known element. This can occur if there is a compilation error in the Web site, or the web.config file is missing.
Element 'CheckBoxField' is not a known element. This can occur if there is a compilation error in the Web site, or the web.config file is missing.
此外,当我切换到此页面的设计视图时,我收到以下错误:
Error Creating Control - GridView1
System.Web.UI.WebControls.DataControlFieldCollection must have items of type 'System.Web.UI.WebControlField'. 'asp:Panel' is of type 'System.Web.UI.WebControls.Panel'.
这个难题的SQL部分坚如磐石,所以我不需要对此进行协助。我是Ajax Control Toolkit的新手,所以我正在尝试确定我需要调整什么来使其工作(如果这对我正在尝试完成的事情来说甚至是正确的解决方案)。我一直在谷歌寻求答案,但没有任何东西帮助我用gridview解决这个问题。下面的代码是在过去六个月到一年内尝试拼凑其他非gridview解决方案的产物。有一些我可能会遗漏的东西,我愿意打赌这可能是一件很简单的事需要修复。如果可能的话,我在这里(下面)错过了什么?
如果有人也知道一个很好的非msdn参考,其中的例子也会非常受欢迎。
Aspx代码:
<%@ Page Title="Test Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="form2.aspx.cs" Inherits="form2" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="FeaturedContent" Runat="Server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="MainContent" Runat="Server">
<cc1:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server"></cc1:ToolkitScriptManager>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CellPadding="4" DataSourceID="SqlDataSource1" ForeColor="#333333" GridLines="None">
<AlternatingRowStyle BackColor="White" />
<Columns>
<asp:CommandField ShowEditButton="True" />
<asp:BoundField DataField="Field 1" HeaderText="Field 1" SortExpression="Field 1" />
<asp:BoundField DataField="Field 2" HeaderText="Field 2" SortExpression="Field 2" />
<asp:BoundField DataField="Field 3" HeaderText="Field 3" SortExpression="Field 3" />
<asp:BoundField DataField="Field 4" HeaderText="Field 4" SortExpression="Field 4" />
<asp:BoundField DataField="Field 5" HeaderText="Field 5" SortExpression="Field 5" />
<asp:BoundField DataField="Field 6" HeaderText="Field 6" SortExpression="Field 6" />
<asp:BoundField DataField="Field 7" HeaderText="Field 7" SortExpression="Field 7" />
<asp:BoundField DataField="Field 8" HeaderText="Field 8" SortExpression="Field 8" />
<asp:BoundField DataField="Field 9" HeaderText="Field 9" SortExpression="Field 9" />
<asp:Panel ID="pnlClick" runat="server" CssClass="collapsiblepanelCSS">
<div style="background-color:blue;height:30px; vertical-align: middle">
<div style="float: left;color:white;padding: 5px 5px 0 0 ">
Server List Collapsable Panel
</div>
<div style="float: right; color: white; padding: 5px 5px 0 0" id="divshow">
<asp:Label ID="lblMessage" runat="server" Text="Label" />
</div>
<div style="clear:both">
</div>
</div>
</asp:Panel>
<asp:Panel ID="pnlCollapsable" runat="server" Height="0" CssClass="collapsiblepanelCSS">
<asp:CheckBoxField DataField="Check Box 1" HeaderText="Check Box 1" SortExpression="Check Box 1" />
<asp:CheckBoxField DataField="Check Box 2" HeaderText="Check Box 2" SortExpression="Check Box 2" />
<asp:CheckBoxField DataField="Check Box 3" HeaderText="Check Box 3" SortExpression="Check Box 3" />
<asp:CheckBoxField DataField="Check Box 4" HeaderText="Check Box 4" SortExpression="Check Box 4" />
<asp:CheckBoxField DataField="Check Box 5" HeaderText="Check Box 5" SortExpression="Check Box 5" />
<asp:CheckBoxField DataField="Check Box 6" HeaderText="Check Box 6" SortExpression="Check Box 6" />
<asp:CheckBoxField DataField="Check Box 7" HeaderText="Check Box 7" SortExpression="Check Box 7" />
<asp:CheckBoxField DataField="Check Box 8" HeaderText="Check Box 8" SortExpression="Check Box 8" />
<asp:CheckBoxField DataField="Check Box 9" HeaderText="Check Box 9" SortExpression="Check Box 9" />
<asp:CheckBoxField DataField="Check Box 10" HeaderText="Check Box 10" SortExpression="Check Box 10" />
<asp:CheckBoxField DataField="Check Box 11" HeaderText="Check Box 11" SortExpression="Check Box 11" />
<asp:CheckBoxField DataField="Check Box 12" HeaderText="Check Box 12" SortExpression="Check Box 12" />
</asp:Panel>
<CC1:CollapsiblePanelExtender ID="CollapsiblePanelExtender1" Collapsed="true" ExpandControlID="pnlClick" TextLabelID="lblMessage" CollapsedText="Click To Show" ExpandedText="Click To Hide" ImageControlID="imgArrows" ExpandDirection="Vertical" TargetControlID="pnlCollapsable" ScrollContents="false" runat="server"></CC1:CollapsiblePanelExtender>
<asp:BoundField DataField="Field 10" HeaderText="Field 10" SortExpression="Field 10" />
<asp:BoundField DataField="Field 11" HeaderText="Field 11" SortExpression="Field 11" />
<asp:BoundField DataField="Field 12" HeaderText="Field 12" SortExpression="Field 12" />
<asp:CommandField ShowEditButton="True" />
</Columns>
<EditRowStyle BackColor="#2461BF" />
<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
<RowStyle BackColor="#EFF3FB" />
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
<SortedAscendingCellStyle BackColor="#F5F7FB" />
<SortedAscendingHeaderStyle BackColor="#6D95E1" />
<SortedDescendingCellStyle BackColor="#E9EBEF" />
<SortedDescendingHeaderStyle BackColor="#4870BE" />
</asp:GridView>
<sql connection strings, insert/update SQL code, update parameters, and closing ASP/HTML tags>
答案 0 :(得分:2)
您的Columns集合的直接子项的所有内容都必须是DataControlField
类型控件(CheckBoxField,ButtonField等)。
因此。您需要将所有Panel
内容放在<Templatefield>
中,这样您就可以创建自定义字段。
你需要将所有CheckBoxField转换为常规复选框,将那些CheckBox绑定到你想要的数据字段,你应该很好
<asp:TemplateField>
<asp:Panel ID="pnlClick" runat="server" CssClass="collapsiblepanelCSS">
<div style="background-color:blue;height:30px; vertical-align: middle">
<div style="float: left;color:white;padding: 5px 5px 0 0 ">
Server List Collapsable Panel
</div>
<div style="float: right; color: white; padding: 5px 5px 0 0" id="divshow">
<asp:Label ID="lblMessage" runat="server" Text="Label" />
</div>
<div style="clear:both">
</div>
</div>
</asp:Panel>
<asp:Panel ID="pnlCollapsable" runat="server" Height="0" CssClass="collapsiblepanelCSS">
<asp:CheckBox ID="CheckBox1" runat="server" Checked='<%=Eval("Check Box 1") %>' Text="Check Box 1" />
<asp:CheckBox ID="CheckBox2" runat="server" Checked='<%=Eval("Check Box 2") %>' Text="Check Box 2" />
<asp:CheckBox ID="CheckBox3" runat="server" Checked='<%=Eval("Check Box 3") %>' Text="Check Box 3" />
<asp:CheckBox ID="CheckBox4" runat="server" Checked='<%=Eval("Check Box 4") %>' Text="Check Box 4" />
<asp:CheckBox ID="CheckBox5" runat="server" Checked='<%=Eval("Check Box 5") %>' Text="Check Box 5" />
<asp:CheckBox ID="CheckBox6" runat="server" Checked='<%=Eval("Check Box 6") %>' Text="Check Box 6" />
<asp:CheckBox ID="CheckBox7" runat="server" Checked='<%=Eval("Check Box 7") %>' Text="Check Box 7" />
<asp:CheckBox ID="CheckBox8" runat="server" Checked='<%=Eval("Check Box 8") %>' Text="Check Box 8" />
<asp:CheckBox ID="CheckBox9" runat="server" Checked='<%=Eval("Check Box 9") %>' Text="Check Box 9" />
<asp:CheckBox ID="CheckBox10" runat="server" Checked='<%=Eval("Check Box 10") %>' Text="Check Box 10" />
<asp:CheckBox ID="CheckBox11" runat="server" Checked='<%=Eval("Check Box 11") %>' Text="Check Box 11" />
<asp:CheckBox ID="CheckBox12" runat="server" Checked='<%=Eval("Check Box 12") %>' Text="Check Box 12" />
</asp:Panel>
<CC1:CollapsiblePanelExtender ID="CollapsiblePanelExtender1" Collapsed="true"
ExpandControlID="pnlClick" TextLabelID="lblMessage" CollapsedText="Click To Show"
ExpandedText="Click To Hide" ImageControlID="imgArrows" ExpandDirection="Vertical"
TargetControlID="pnlCollapsable" ScrollContents="false" runat="server">
</CC1:CollapsiblePanelExtender>
</asp:Templatefield>