Где поймать свойства пользовательского элемента управления, которые будут загружены в модальное пространство?
У меня есть пользовательский элемент управления, который имеет открытое свойство (например, AlarmID), и этот элемент управления оборачивается внутри элемента div, и когда пользователь нажимает кнопку на странице, в коде позади устанавливается общедоступное свойство этого пользовательского элемента управления. затем вызывается ScriptManager.RegisterStartupScript для отображения модального всплывающего окна, являющегося div-оберткой для этого элемента управления.
Моя проблема в том, что, хотя в коде позади я сначала устанавливаю открытое свойство этого пользовательского элемента управления, но когда модальное всплывающее окно показывает этот пользовательский элемент управления, я не могу получить доступ к этому свойству
Я использовал события Control_PreRender и Control_Load, но ни одно из них не смогло показать правильное значение этого свойства в метке внутри этого элемента управления.
Для большей ясности вот мой код в коде позади элемента управления:
protected void Control_Load(object sender, EventArgs e)
{
lblAlarmCode.Text = alarmID.ToString();
}
public int AlarmID
{
get
{
return this.alarmID;
}
set
{
this.alarmID = value;
}
}
Каково точное событие жизненного цикла, в котором я могу поймать свойство, которое будет правильно отображаться этим ярлыком?
Спасибо
2 ответа
Убедитесь, что модальный <form>
элемент на странице, иначе он вообще не будет частью жизненного цикла страницы.
Как пример, я не говорю, что это ваш код, но мне пришлось использовать нечто подобное, чтобы <asp:Textbox>
а также <asp:Button>
элементы управления, которые будут перемещаться по запросу
ASPX код:
<asp:Panel runat="server" ID="pnlWorkItem">
<fieldset>
<legend></legend>
<label>Job Code</label>
<asp:DropDownList runat="server" ID="ddlJobCode" Width="50%" />
<label>Hours</label>
<asp:TextBox runat="server" ID="txtHours" />
</fieldset>
<fieldset>
<legend></legend>
<p><asp:Button runat="server" ID="btnAddWorkItem" OnClick="btnAddWorkItem_Click" text="Add Work Item" /></p>
</fieldset>
</asp:Panel>
Javascript:
$(function () {
var workItemPanel = $("#<%= pnlWorkItem.ClientID %>");
workItemPanel.hide();
$("#add-work").on("click", function () {
$(workItemPanel).dialog({
width: 450,
height: 300
}).parent().appendTo($("form:first"));
});
});
Он добавит ваш элемент к элементу формы, созданному ASP.net, и ваши свойства должны быть установлены и перенесены.
Одним из решений является установка метки в сеттере. Однако могут быть и другие решения, но этот способ просто работает.