我在我的母版页中使用以下代码来查找内容页中的控件。在第一个页面加载时,它工作得很好;但当我从内容页面上的下拉列表中选择一个项目并启用自动回调时,我收到错误消息"object reference not set to an instance of a object“。这意味着FindControl()函数无法在内容页中找到控件。这个问题的原因是什么?
PlaceHolder pHolder = (PlaceHolder)ContentPlaceHolder2.FindControl("PlaceHolder1");
Label lblPage = (Label)pHolder.FindControl("lblPageName");
if (lblPage.Text == "DesignSerachSQGrid")
{
}
编辑...
下拉列表的Html代码:
<telerik:RadComboBox ID="ddlSearchL1" runat="server" Width="400px" Skin="Office2007"
onselectedindexchanged="ddlSearchL1_SelectedIndexChanged"
AutoPostBack="True" Font-Names="Eras Medium ITC" Font-Size="X-Small"
onprerender="ddlSearchL1_PreRender">
<Items>
<telerik:RadComboBoxItem runat="server" Text="Please Select ................"
Value="Please Select ................" Font-Name="Eras Medium ITC" />
<telerik:RadComboBoxItem runat="server" Text="Design Documents"
Value="Design Documents" Font-Name="Eras Medium ITC" />
<telerik:RadComboBoxItem runat="server" Text="Vendor Documents"
Value="Vendor Documents" Font-Name="Eras Medium ITC" />
<telerik:RadComboBoxItem runat="server" Text="Business Documents"
Value="Business Documents" Font-Name="Eras Medium ITC" />
<telerik:RadComboBoxItem runat="server" Text="Management Documents"
Value="Management Documents" Font-Name="Eras Medium ITC" />
<telerik:RadComboBoxItem runat="server" Text="Squad Check - Management"
Value="Squad Check - Management" Font-Name="Eras Medium ITC" />
<telerik:RadComboBoxItem runat="server" Text="Transmittal - Management"
Value="Transmittal - Management" Font-Name="Eras Medium ITC" />
<telerik:RadComboBoxItem runat="server" Text="Transmittal - Design"
Value="Transmittal - Design" Font-Name="Eras Medium ITC" />
<telerik:RadComboBoxItem runat="server" Text="Squad Check - Design"
Value="Squad Check - Design" Font-Name="Eras Medium ITC" />
<telerik:RadComboBoxItem runat="server" Text="Transmittal - Vendor"
Value="Transmittal - Vendor" Font-Name="Eras Medium ITC" />
<telerik:RadComboBoxItem runat="server" Text="Squad Check - Vendor"
Value="Squad Check - Vendor" Font-Name="Eras Medium ITC" />
</Items>
</telerik:RadComboBox>
发布于 2011-10-11 13:02:33
你可以查看这篇文章:ASP.NET 2.0 MasterPages and FindControl()
/// <summary>
/// Finds a Control recursively. Note finds the first match and exists
/// </summary>
/// <param name="ContainerCtl"></param>
/// <param name="IdToFind"></param>
/// <returns></returns>
public static Control FindControlRecursive(Control Root, string Id)
{
if (Root.ID == Id)
return Root;
foreach (Control Ctl in Root.Controls)
{
Control FoundCtl = FindControlRecursive(Ctl, Id);
if (FoundCtl != null)
return FoundCtl;
}
return null;
}
使用它
this.dgItemList = FindControlRecursive(this.Master, "dgItemList") as DataGrid;
https://stackoverflow.com/questions/7725747
复制