你能在c#中使用带有Ajax手风琴的findcontrol吗?

时间:2012-05-11 17:14:26

标签: c# ajaxcontroltoolkit

这跟我提出的另一个问题一样,我的母版页上有一个下拉列表,导致更改后的回发和在索引中更改的方法我试图找到我的ajax手风琴来查看所选的索引它

protected void ddlSelectedCustomer_SelectedIndexChanged(object sender, EventArgs e)
{
    CustomerSelected();

    Response.AppendHeader("Refresh", "0;URL=storefront.aspx");

    ViewState["SelectedAccordionIndex"] = (AjaxControlToolkit.Accordion)FindControl("MyAccordion").SelectedIndex;
}

我得错误

对象引用未设置为对象的实例。

2 个答案:

答案 0 :(得分:2)

问题是FindControl返回一个Object。将其演变为手风琴并再试一次:ViewState["SelectedAccordionIndex"] = ((Accordion)FindControl("MyAccordion")).SelectedIndex;

如果这不是您可能需要深入钻探的原因,例如((Accordion)this.FindControl(<the id of your content placeholder your accordion is in>).FindControl("MyAccordion")).SelectedIndex;

答案 1 :(得分:1)

您应该可以像使用任何其他ASP控件一样使用它。如上所述,它作为Object返回,因此您必须将其转换为您正在使用的任何控件,无论是下拉列表,列表框还是在这种情况下是ajax手风琴