У меня есть несколько текстовых полей, и я хочу программно заполнить их одним и тем же методом.Заполнение текстового поля с помощью FindControl
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdateProgress ID="UpdateProgress1" runat="server" DisplayAfter="500">
<ProgressTemplate>
<div id="FreezeUpdate" class="FreezePaneOn">
<div id="InnerFreezePane" class="InnerFreezePane gradient"><asp:Literal ID="litProgress" runat="server" Text="<%$ Resources:LocalizedText, freezeMsg_ProcessingPleaseWait %>"></asp:Literal></style></div>
</div>
</ProgressTemplate>
</asp:UpdateProgress>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<asp:TextBox ID="tbxCollectionAddress" runat="server" TextMode="MultiLine" ReadOnly="True" CssClass="address"></asp:TextBox>
<asp:TextBox ID="tbxReturnAddress" runat="server" TextMode="MultiLine" ReadOnly="True" CssClass="address"></asp:TextBox>
</asp:UpdatePanel>
</asp:Content>
то метод ...
protected void PopulateAddress(string txtTextbox, Address adrAddress)
{
TextBox txtAddress = (TextBox)FindControl(txtTextbox);
txtAddress.Text = "Hello World";
}
, когда я называю этот метод, как показано ниже ...
PopulateAddress("tbxReturnAddress", CollectionAddress);
... Я получаю исключение ...
System.NullReferenceException: Ссылка на объект не установлена в экземпляр объекта.
... и он выделяет линию txtAddress.Text = "Hello World";
.
Я хотел бы сделать это так, используя этот метод, потому что есть три отдельных адреса, которые мне нужно заполнить в форме, но я хотел бы попробовать использовать повторно используемый код, чтобы сделать это, подав адрес объект и идентификатор текстового поля, но я падаю только на этапе findcontrol.
Что мне не хватает?
делает эту помощь: http://msdn.microsoft.com/en-us/library/y81z8326.aspx – mcalex