1

我有两个 aspx 页面:

  1. DashboardPreview.aspx:这是主页。它在 DataGridView 中显示前 5 个仪表板。它还显示其他信息。

  2. DashboardList.aspx:它在 DataGridView 中显示所有带有分页的仪表板。

每个仪表板(即 DataGridView 的每一行)都有多个控件可用。例如:仪表板可以“编辑”并与其他用户“共享”。

我只想对 DataGridView 进行编码ONCE

然后,我想在两个页面中都使用该代码。我该怎么做?

注意:我通过从 Visual Studio 的工具箱中拖放来创建 DataGridView,即我自己没有编写整个代码。但是,我自己确实创建了“共享”按钮之类的控件。

4

3 回答 3

1

如果要跨页面重用服务器控件,则需要创建用户控件。

创建用户控件:

  1. 我会为用户控件创建一个特定的文件夹。
  2. 右键单击该文件夹并选择“添加新项目”,然后选择用户控制。
  3. 在该用户控件中输入 GridView

您的用户控件将如下所示:

<%@ Control Language="VB" AutoEventWireup="false" CodeFile="YourUserControlName.ascx.vb" Inherits="Controls_YourUserControlName" %>

<asp:GridView ID="GridView1">
    <!-- Do you grid view stuff here -->
</asp:GridView>

要使用用户控件,您需要在要使用它的页面上注册它。代码如下所示:

<%@ Register Src="~/Controls/ucGrid.ascx" TagName="ucGrid" TagPrefix="uc" %>

然后你会像使用服务器控件一样使用它。

<uc:ucGrid ID="GridView" runat="server" />

但是,在每个页面上注册用户控件可能会变得乏味,因此为了使事情更容易,您可以在 web.config 中注册它们。

<system.web>
  <pages>
    <controls>
      <add tagPrefix="uc" src="~/Controls/ucGrid.ascx" tagName="ucGrid"/>
    </controls>
  </pages>
</system.web>
于 2012-06-14T13:24:27.897 回答
0

显而易见的解决方案是将网格放在 UserControl 中,然后在所有相关页面上包含 UserControl。

于 2012-06-14T13:23:49.720 回答
0

您可以为此使用“网络用户控制”。将 webusercontrol 添加到您的解决方案中,将 datagridview 拖放到 webusercontrol 界面中,并根据您的需要更改 usercontrol 的代码隐藏文件。之后构建您的解决方案。构建解决方案后,您只需将用户控件拖放到要使用的任何页面即可。您不必一次又一次地对其进行编码。如果您需要更多详细信息,可以搜索“使用 Web 控件”。

于 2012-06-14T13:24:28.643 回答