我做一个页面有一个dropdownlist想要在selectindexchange时
调用自己做的一个控件
该控件中有7个panel 想对应dropdownlist选择不同的value时panel的visable改变,显示想要的panel
    protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {
        eval.Pass = DropDownList1.SelectedValue;
        if (DropDownList1.SelectedValue == "SH")
        {
            ((Panel)eval.FindControl("Panel_SH")).Visible = true;
            ((Panel)eval.FindControl("Panel_DB")).Visible = false;
            ((Panel)eval.FindControl("Panel_WS")).Visible = false;
            ((Panel)eval.FindControl("Panel_TC")).Visible = false;
            ((Panel)eval.FindControl("Panel_YX")).Visible = false;
            ((Panel)eval.FindControl("Panel_DD")).Visible = false;
            ((Panel)eval.FindControl("Panel_HP")).Visible = false;
        }
        else if (DropDownList1.SelectedValue == "DB")
        {
            ((Panel)eval.FindControl("Panel_SH")).Visible = false;
            ((Panel)eval.FindControl("Panel_DB")).Visible = true;
            ((Panel)eval.FindControl("Panel_WS")).Visible = false;
            ((Panel)eval.FindControl("Panel_TC")).Visible = false;
            ((Panel)eval.FindControl("Panel_YX")).Visible = false;
            ((Panel)eval.FindControl("Panel_DD")).Visible = false;
            ((Panel)eval.FindControl("Panel_HP")).Visible = false;
        }
        else if (DropDownList1.SelectedValue == "WS")
        {
            ((Panel)eval.FindControl("Panel_SH")).Visible = false;
            ((Panel)eval.FindControl("Panel_DB")).Visible = false;
            ((Panel)eval.FindControl("Panel_WS")).Visible = true;
            ((Panel)eval.FindControl("Panel_TC")).Visible = false;
            ((Panel)eval.FindControl("Panel_YX")).Visible = false;
            ((Panel)eval.FindControl("Panel_DD")).Visible = false;
            ((Panel)eval.FindControl("Panel_HP")).Visible = false;
        }
        else if (DropDownList1.SelectedValue == "TC")
        {
            ((Panel)eval.FindControl("Panel_SH")).Visible = false;
            ((Panel)eval.FindControl("Panel_DB")).Visible = false;
            ((Panel)eval.FindControl("Panel_WS")).Visible = false;
            ((Panel)eval.FindControl("Panel_TC")).Visible = true;
            ((Panel)eval.FindControl("Panel_YX")).Visible = false;
            ((Panel)eval.FindControl("Panel_DD")).Visible = false;
            ((Panel)eval.FindControl("Panel_HP")).Visible = false;
        }
        else if (DropDownList1.SelectedValue == "YX")
        {
            ((Panel)eval.FindControl("Panel_SH")).Visible = false;
            ((Panel)eval.FindControl("Panel_DB")).Visible = false;
            ((Panel)eval.FindControl("Panel_WS")).Visible = false;
            ((Panel)eval.FindControl("Panel_TC")).Visible = false;
            ((Panel)eval.FindControl("Panel_YX")).Visible = true;
            ((Panel)eval.FindControl("Panel_DD")).Visible = false;
            ((Panel)eval.FindControl("Panel_HP")).Visible = false;
        }
        else if (DropDownList1.SelectedValue == "DD")
        {
            ((Panel)eval.FindControl("Panel_SH")).Visible = false;
            ((Panel)eval.FindControl("Panel_DB")).Visible = false;
            ((Panel)eval.FindControl("Panel_WS")).Visible = false;
            ((Panel)eval.FindControl("Panel_TC")).Visible = false;
            ((Panel)eval.FindControl("Panel_YX")).Visible = false;
            ((Panel)eval.FindControl("Panel_DD")).Visible = true;
            ((Panel)eval.FindControl("Panel_HP")).Visible = false;
        }
        else if (DropDownList1.SelectedValue == "HP")
        {
            ((Panel)eval.FindControl("Panel_SH")).Visible = false;
            ((Panel)eval.FindControl("Panel_DB")).Visible = false;
            ((Panel)eval.FindControl("Panel_WS")).Visible = false;
            ((Panel)eval.FindControl("Panel_TC")).Visible = false;
            ((Panel)eval.FindControl("Panel_YX")).Visible = false;
            ((Panel)eval.FindControl("Panel_DD")).Visible = false;
            ((Panel)eval.FindControl("Panel_HP")).Visible = true;
        }    }
代码如上 调试时不起作用,就教高手

解决方案 »

  1.   

    如果想局部刷新放入updatepanel里面即可
    或者直接在客户端用js来控制。
      

  2.   

    ICALLBACKHANDLER等接口好象也成地
      

  3.   

    这个应该用js来完成的
    <asp:DropDownList ID="sel_div" onchange="showDiv(this);" runat="server" >
    </asp:DropDownList>
    <div id="divid">
    <div id ="SH" style="display:none;">sh</div>
    <div id ="DB" style="display:none;">>DB</div>
    <div id ="WS" style="display:none;">>WS</div>
    <div id ="TC" style="display:none;">>TC</div>
    <div id ="YX" style="display:none;">>YX</div>
    <div id ="DD" style="display:none;">>DD</div>
    <div id ="HP" style="display:none;">>HP</div> 
    </div>.js
    function showDiv(obj)
    {
    var div = obj.value;
    var divlist = document.getElementById("divid").getElementsByTagName("div");
    for(var i = 0; i < divlist.length; ++i)
    {
    if(divlist[i].id.indexof(div) == -1)
    {
    divlist[i].style.display = "none";
    }
    else
    {
    divlist[i].style.display = "block";
    }
    }
    }