Я знаю, что это может быть невозможно, учитывая жизненный цикл страницы, но есть ли способ изменить текст метки на результат моего делегата после выполнения метода Page_Load.Изменение ASP.net Текст метки после загрузки страницы
Это мой код
public partial class WebForm1 : System.Web.UI.Page
{
//private static int Clicks;
static RaceResult Result;
protected void Page_Load(object sender, EventArgs e)
{
//Label1.Text = Convert.ToString(Session["Clicks"]);
// First page load?
if (!IsPostBack)
{
Result = new RaceResult(0, "");
Result.NbrClicksReached += Result_NbrClicksReached;
}
}
private void Result_NbrClicksReached(string message)
{
lblRaceResults.Text = (message); //This is the label I would like to change
}
protected void btnCounter_Click(object sender, EventArgs e)
{
Result.Add(1);
}
public delegate void StringDelegate(string message);
public class RaceResult
{
public int Clicks { get; set; }
public string Name { get; set; }
public RaceResult(int clicks, string name)
{
Name = name;
Clicks = 0;
}
//Delegate
public event StringDelegate NbrClicksReached;
public void Add(int amount)
{
Clicks += amount;
if (Clicks == 1)
{
Name = "3rd";
if (NbrClicksReached != null)
NbrClicksReached(Name);
}
if (Clicks == 2)
{
Name = "2nd";
NbrClicksReached(Name);
}
if (Clicks >= 3)
{
Name = "1st";
NbrClicksReached(Name);
}
}
}
}
Это моя ASPX страница
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="btnFeed" OnClick="btnCounter_Click" runat="server" Text="Button" />
<br />
<asp:Label ID="lblRaceResults" runat="server" Text="Label"></asp:Label>
</div>
</form>
</body>
Если это не представляется возможным, чтобы изменить ярлыки текста может кто-нибудь сделать предложение, что я мог бы добавить к моему Page_Load чтобы получить результат для отображения на ярлыке
Да, это возможно. Но вы почти никогда не должны использовать переменные 'static' в ASP.NET. Они распределяются между всеми запросами/пользователями и будут перезаписаны всегда. Вместо этого используйте 'Session',' ViewState', url-параметр, скрытое поле или другие способы сохранения данных между пользовательскими запросами –
Статическая переменная доступна только для тестирования – Cathal