1

这伴随着我问的另一个问题,我的母版页上有一个下拉列表,在更改时会导致回发,并且在该索引更改方法中,我试图找到我的 ajax 手风琴来查看它的选定索引

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

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

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

我得到的错误

你调用的对象是空的。

4

2 回答 2

2

问题是 FindControl 返回一个对象。将其投射到手风琴上,然后重试:ViewState["SelectedAccordionIndex"] = ((Accordion)FindControl("MyAccordion")).SelectedIndex;

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

于 2012-05-11T19:56:20.727 回答
1

您应该能够像使用任何其他 ASP 控件一样使用它。如上所述,它作为对象返回,因此您必须将其转换为您正在使用的任何控件,无论是下拉列表、列表框,还是在本例中为 ajax 手风琴

于 2012-06-20T14:20:21.983 回答