你能在 c# 中将 findcontrol 与 Ajax 手风琴一起使用吗?



这与我提出的另一个问题有关,我的母版页上有一个下拉列表,该下拉列表在更改时会导致回发,在该索引更改方法中,我正在尝试找到我的ajax手风琴以查看其所选索引

protected void ddlSelectedCustomer_SelectedIndexChanged(object sender, EventArgs e)
{
    CustomerSelected();
    Response.AppendHeader("Refresh", "0;URL=storefront.aspx");
    ViewState["SelectedAccordionIndex"] = (AjaxControlToolkit.Accordion)FindControl("MyAccordion").SelectedIndex;
}

我收到的错误

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

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

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

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

最新更新