在多个页面中使用相同的DataGridView

时间:2012-06-14 13:20:00

标签: c# asp.net visual-studio-2010 datagridview

我有两个aspx页面:

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

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

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

    我想编写DataGridView 仅ONCE

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

    注意:我通过从Visual Studio的Toolbox中拖放来创建DataGridView,即我没有自己编写整个代码。但是,我自己创建了像“共享”按钮这样的控件。

3 个答案:

答案 0 :(得分:1)

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

创建用户控件:

  1. 我会为用户控件创建一个特定的文件夹。
  2. 右键单击该文件夹并选择“添加新项”,然后选择“用户控制”。
  3. 在该用户控件
  4. 中输入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>
    

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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