I need to configure a property of a custom control I wrote, specifically before the control calls OnInit
. If I assign it as part of the ASPX file, it naturally works, but if I instead move the assignment to different parts of the code-behind, it will throw an error for having an empty and invalid value. The following is what it looks like when functional in the ASPX page.
<MyCustomControls:SingleCascadeLookupMulti FilterString="Seventh" FilterByStatus="true" ControlMode="New" FieldName="Speciality" EnableViewState="true" ID="sclmDocuments" runat="server" TemplateName="SingleCascadeLookupMulti" />
The property in question is FilterString
, which is just a simple string. It should be noted as well that the FieldName
property (inheritted from the control's base class "BaseFieldControl") would also throw an error if it is not initialized, but if I set FieldName
in the code behind's OnInit
method, it works correctly. FilterString
is not so, it won't actually be assigned. So I know that some methods for certain properties will work for setting the property's value, but it won't always work. I tried placing it in OnPreInit as well, to no avail.
I am taking a dynamic assignment approach because the functionality of this page needs to be replicated for a number of different lists, and the FilterString
and FieldName
properties will differ in every case. Rather than write half a dozen mostly-identical aspx pages all with the same code behind but differing just in what those two properties are, I figured it would be wiser to use the page's query string and some derived parameters to set those properties dynamically. As such, what methods are available to accomplish this task?