我想实现使用一个自定义的控制RowClickableGridView
提供一流该堆栈溢出职位 。 这是我第一次尝试创建一个自定义服务器控件,并遵循布局的步骤这个MSDN演练 。
我有RowClickableGridView
在类App\_Code
我的Web应用程序项目的目录中的名称空间MyWebApplication.App\_Code
,并将其编译。
我的问题是, .aspx
,我试图用控制上无法识别标记前缀页。 该页面还对之间不支持的元素多次警告cc1:GridViewRowClickable
标签。 我以为我根据MSDN演练已经一切就绪。
代码段
<%@ Page Title="MyPage" Language="C#" MasterPageFile="~/MyMaster.master" AutoEventWireup="true" Inherits="MyPage" Codebehind="MyPage.aspx.cs" %>
<%@ Register TagPrefix="cc1" TagName="RowClickableGridView" Namespace="MyWebApplication.App_Code" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:MyConnectionString %>" SelectCommand="MySpName" SelectCommandType="StoredProcedure">
</asp:SqlDataSource>
<cc1:RowClickableGridView ID="GVW_test" runat="server" DataSourceID="SqlDataSource1">
<HeaderStyle CssClass="ListTop" />
<RowStyle CssClass="RowHighlight" />
<Columns>
<asp:BoundField HeaderText="ID" DataField="Atr_ID" SortExpression="Atr_ID" />
<asp:BoundField HeaderText="Name" DataField="Atr_Name" SortExpression="Atr_Name" />
</Columns>
<EmptyDataTemplate>
No Data
</EmptyDataTemplate>
</cc1:RowClickableGridView>
</asp:Content>
在我做什么尝试下一个错误或建议的任何想法?
您已指定“RowClickableGridView”作为标记名,但你在代码中使用“GridViewRowClickable”。
我得到了它的最后工作。 我采取了不同的方法,但。
- 创建一个新的ASP.NET服务器控件项目
- 复制类为默认的CS文件并重新命名的命名空间。
- 添加默认的TagPrefix到线以上的命名空间声明。
[assembly: TagPrefix("mynamespace", "mycustomtag")]
- 添加ToolBoxData排队上面的类复制。
[ToolboxData("<{0}:GridViewRowClickable runat=server></{0}:GridViewRowClickable>")]
- 项目建设成为DLL
- 复制DLL到Web应用程序的bin目录
- 在Web应用程序项目引用的DLL
- 通过增加从DLL创建一个新的工具箱项添加控件工具箱
- 拖动并从工具箱中拖放到控制aspx页面
这增加了相应的Register指令在aspx页面的顶部,并修复了所有我收到的警告。 自动完成也能在这种情况下也是如此。
下面是代码。
<%@ Page Title="" Language="C#" MasterPageFile="~/MyMaster.master" AutoEventWireup="true" Inherits="MyPage" Codebehind="MyPage.aspx.cs" %>
<%@ Register Assembly="GridViewRowClickable" Namespace="CustomServerControls" TagPrefix="MyTag" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
<asp:SqlDataSource ID="Sql_MyTable" runat="server" ConnectionString="<%$ ConnectionStrings:MyConnectionString %>"
SelectCommand="spTbl_Select" SelectCommandType="StoredProcedure">
</asp:SqlDataSource>
<egcc:GridViewRowClickable ID="GridViewRowClickable_test" runat="server"
DataSourceID="Sql_MyTable" DataKeyNames="tbl_id"
AllowSorting="True" AutoGenerateColumns="False" GridLines="None" PageSize="25" Width="100%"
EnableRowClickSelection="true" RowClickCommand="Select" OnSelectedIndexChanged="GridViewRowClickable_test_OnSelectedIndexChanged">
<Columns>
<asp:BoundField HeaderText="ID" DataField="tbl_id" SortExpression="tbl_id" />
<asp:BoundField HeaderText="Name" DataField="tbl_name" SortExpression="tbl_name" />
</Columns>
<EmptyDataTemplate>
No Data.
</EmptyDataTemplate>
</egcc:GridViewRowClickable>
</asp:Content>