Вы смотрели на телефон bcmod()
? php имеет проблемы с целыми числами по 2^31 - 1 на платформах на 32 бита.
var_dump(bcmod("$x", '104659') ); // string(4) "2968"
Предоставлено г-ном. Сам Этвуд , вот рекурсивная версия метода. Я бы также порекомендовал протестировать элемент управления на null, и я включил, как вы можете изменить код, чтобы сделать это.
protected void Button1_Click(object sender, EventArgs e)
{
if (TextBox1.Text != "")
{
Label Label1 = FindControlRecursive(Page, "Label1") as Label;
if(Label1 != null)
Label1.Text = "<b>The text you entered was: " + TextBox1.Text + ".</b>";
}
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
Label Label1 = FindControlRecursive(Page, "Label1") as Label;
if (Label1 != null)
Label1.Text = "<b>You chose <u>" + DropDownList1.SelectedValue + "</u> from the dropdown menu.</b>";
}
private Control FindControlRecursive(Control root, string id)
{
if (root.ID == id) return root;
foreach (Control c in root.Controls)
{
Control t = FindControlRecursive(c, id);
if (t != null) return t;
}
return null;
}
Когда Label1 существует на главной странице:
Как насчет того, чтобы сообщить странице содержимого, где находится ваша главная страница
<%@ MasterType VirtualPath="~/MasterPages/PublicUI.Master" %>
Затем создать метод в мастере, например
public void SetMessage(string message)
{
Label1.Text = message;
}
И вызвать его в код страницы позади.
Master.SetMessage("<b>You chose <u>" + DropDownList1.SelectedValue + "</u> from the dropdown menu.</b>");
Если Label1 существует на странице содержимого
Если он просто находится на той же странице, просто вызовите Label1.Text = someString; или если вам по какой-то причине необходимо использовать FindControl, измените свой Master.FindControl на FindControl
FindControl
выполняет поиск только в непосредственных дочерних элементах (технически до следующего NamingContainer ), а не во всем дереве элементов управления. Поскольку Label1
не является непосредственным потомком Master
, Master.FindControl
не может его найти. Вместо этого вам нужно либо выполнить FindControl
в непосредственном родительском элементе управления, либо выполнить рекурсивный поиск элемента управления:
private Control FindControlRecursive(Control ctrl, string id)
{
if(ctrl.ID == id)
{
return ctrl;
}
foreach (Control child in ctrl.Controls)
{
Control t = FindControlRecursive(child, id);
if (t != null)
{
return t;
}
}
return null;
}
.