在下拉列表上隐藏行选择的索引更改

时间:2012-04-07 09:53:28

标签: asp.net

我在asp.net页面和updatepanel中使用了asp.net formsview。它有两个模板Insertemplate和EditTemplate。独立两个模板都有一个id为ddlCountry的下拉列表。我有一个包含所有国家/地区的下拉列表。我正在显示州下拉列表,如果国家/地区是美国并且想隐藏显示州下拉列表的行如果国家/地区是非美国。我正在使用以下代码,但它无法正常工作:

protected void ddlCountry_SelectedIndexChanged(object sender, EventArgs e)
    {

        Control c = (Control)sender;
        Control nc = c.NamingContainer;
        if (nc.ID == "fvBillTo" && rblShipSelect.SelectedValue == "billing")
        {
            setShippingAndTaxesDisplay();

            DropDownList ddlCountry = c as DropDownList;
            if (ddlCountry.SelectedItem != null && ddlCountry.SelectedItem.Value == "001")
            {
                HtmlGenericControl trState = nc.FindControl("trState") as HtmlGenericControl;
                trState.Visible = true;
            }
            else
            {
                HtmlGenericControl trState = nc.FindControl("trState") as HtmlGenericControl;
                trState.Visible = false; // code stops here
            }

        }
    }

1 个答案:

答案 0 :(得分:0)

代码在此时抛出异常,因为它没有对表行的引用。

确保将引用的行作为服务器端控件

<tr id="trState" runat="server"  >

将其转换为表格行而不是HtmlGenericControl

 System.Web.UI.HtmlControls.HtmlTableRow trState = nc.FindControl("trState") as System.Web.UI.HtmlControls.HtmlTableRow;