Wiem, że w C# mogę zrobić fabrykę, ale nie wiem, jak ponownie użyć kodu w aspx. Mój kod był pierwotnie przeznaczony tylko dla ARList, ale teraz ma IcnList. Myślałem o zrobieniu instrukcji switch, ale czy nie ma czegoś lepszego do kodowania?

Funkcja

 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;
            }
        }

enter image description here

4
Conrad C 28 wrzesień 2012, 00:36

4 odpowiedzi

Najlepsza odpowiedź

Powinieneś być w stanie dziedziczyć z jednej strony, aby ponownie użyć kodu.

Początek pliku aspx:

<%@ Page Language="C#" AutoEventWireup="true" Inherits="MyNamespace.CommonCode" %>
1
Nick Vaccaro 28 wrzesień 2012, 00:47

Jeśli chcesz tylko móc ponownie wykorzystać kod, dodaj klasę do swojego projektu dla metod narzędziowych i zrzuć ją tam, aby obie strony mogły korzystać.

Jeśli próbujesz ponownie użyć kodu z powiązanym interfejsem użytkownika, zajrzyj do kontrolek użytkownika (pliki ascx), które pozwalają to zrobić.

Z pytania nie wynika jasno, co jest dla Ciebie odpowiednie.

2
Erix 28 wrzesień 2012, 00:45

W TicketExtractionWeb utwórz klasę 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;
    }
}

I stronę (nazwiemy ją MyPage):

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

Więc kiedy tworzysz kolejną stronę aspx, domyślnie będzie to:

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

Po prostu zmień : System.Web.UI.Page na : BasePage

2
Gromer 28 wrzesień 2012, 00:52

Jeśli chcesz ponownie użyć html , użyj pliku kontroli użytkownika (.ascx), który może być użyty wielokrotnie

kiedy potrzebujesz plików .ascx i jak będziesz ich używać?

0
Srinivas GV 5 maj 2018, 22:43