4

我知道在 C# 中我可以创建工厂,但我不知道如何在 aspx 中重用代码。我的代码最初只用于 ARList,但现在有 IcnList。我想过做一个 switch 语句,但没有更好的代码吗?

功能

 protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                ARExtractionController arController = new ARExtractionController();
                Dictionary<int, string> ARDictionary = arController.GetTickets();
                List<int> sortedARList = new List<int>();
                foreach (KeyValuePair<int, string> kv in ARDictionary)
                {
                    sortedARList.Add(kv.Key);
                }
                sortedARList.Sort();
                sortedARList.Reverse();
                ARList.DataSource = sortedARList;
                ARList.DataBind();
                ARList.Items.Insert(0, " ");
                ARList.AutoPostBack = true;
            }
        }

在此处输入图像描述

4

4 回答 4

2

如果您只是希望能够重用代码,请将一个类添加到您的项目中以获取实用程序方法并将其转储到其中以供两个页面使用。

如果您尝试使用相关 UI 重用代码,请查看允许您这样做的用户控件(ascx 文件)。

从问题中不清楚哪个适合您。

于 2012-09-27T20:45:15.903 回答
2

在 TicketExtractionWeb 中,创建一个 BasePage 类。

BasePage.cs:

public class BasePage : System.Web.UI.Page
{
    // Add methods that are used on all your pages in here.

    protected DateTime GetCurrentDate()
    {
        return DateTime.Now;
    }
}

还有一个页面(我们称之为 MyPage):

public class MyPage : BasePage
{
    protected Page_Load(object sender, EventArgs e)
    {
        var currentDate = this.GetCurrentDate();
    }
}

因此,当您创建另一个 aspx 页面时,它将默认为:

public class MyNewPage : System.Web.UI.Page
{
    // ...
}

只需更改: System.Web.UI.Page: BasePage

于 2012-09-27T20:52:06.040 回答
1

您应该能够从单个页面继承以重用代码。

aspx 文件的顶部:

<%@ Page Language="C#" AutoEventWireup="true" Inherits="MyNamespace.CommonCode" %>
于 2012-09-27T20:47:04.493 回答
0

如果要复用html,请使用用户控制文件(.ascx),可以多次复用。

什么时候需要 .ascx 文件以及如何使用它们?

于 2018-05-05T19:43:17.353 回答