| 网站镜像:电信 网通 | 加入收藏 | 设为首页

ASP.NET下根据QueryString决定使用哪块javascript的两种方法 :)

  • 在asp下,有时候会使用下面的代码:

    <%
    if request("m") = "1" then%>
    <script language="javascript">
    <!--
    m_name[0] = "《财经》杂志 ";
    //m_period[0] = 6;
    init(1, 1, 1);
    //-->
    </script>
    <%
    else%>
    <script language="javascript">
    <!--
    m_name[0] = "《财经》杂志 ";
    init(0, 1, 1);
    //-->
    </script>
    <%end if%>
    <%if request("m") = "2" then%>
    <script language="javascript">
    <!--
    m_name[1] = "《证券市场》周刊(综合刊)";
    m_name[2] = "《证券市场》周刊(市场刊)";
    init(1, 2, 1);
    init(1, 3, 1);
    //-->
    </script>
    <%
    else%>
    <script language="javascript">
    <!--
    m_name[1] = "《证券市场》周刊(综合刊)";
    m_name[2] = "《证券市场》周刊(市场刊)";
    init(0, 2, 1);
    init(0, 3, 1);
    //-->
    </script>
    <%end if%>

    如果是在ASP.NET下,如何解决呢?

    方法1(使用ViewState):(蒙斑竹鸿雪指教,试验成功)

    <SCRIPT language="javascript">
                <!--
                
                function howMuch2View(iselect, iview)
                {
                    var m1, m2;
                    switch(iselect)
                    {
                        case 1:
                            m1 = 1;
                            m2 = 0;
                            break;
                        case 2:
                            m1 = 0;
                            m2 = 1;
                            break;
                        default:
                            m1 = 1;
                            m2 = 0;
                            break;
                    
                    }
                                    
                    switch(iview)
                        {
                        case 1:
                            m_name[0] = "《财经》杂志 ";
                            //m_period[0] = 6;
                            init(m1, 1, 1);                
                            break;
                        case 3:
                            m_name[0] = "《财经》杂志 ";
                            //m_period[0] = 6;
                            init(m1, 1, 1);
                            
                            m_name[1] = "《证券市场》周刊(综合刊)";
                            m_name[2] = "《证券市场》周刊(市场刊)";
                            init(m2, 2, 1);
                            init(m2, 3, 1);
                        
                            break;
                        default:
                            m_name[0] = "《财经》杂志 ";
                            //m_period[0] = 6;
                            init(m1, 1, 1);                
                            break;
                        break;
                        }
                }
                
                howMuch2View(<%=ViewState["which2Select"]%>,<%=ViewState["howMuch2View"]%>);
                
                
                //-->
                                                    </SCRIPT>
    ------------------------------------
    方法2(使用Panel的visible属性):
    WebForm:
    <asp:panel id="pnlJsInitM1" runat="server" Visible="False">
                                <SCRIPT language="javascript">
        <!--
        m_name[0] = "《财经》杂志 ";
        //m_period[0] = 6;
        init(1, 1, 1);
        //-->
                                </SCRIPT>
    </asp:panel>

    <asp:Panel id="pnlJsInitM1n" runat="server" Visible="False">
                            <SCRIPT language="javascript">
        <!--
        m_name[0] = "《财经》杂志 ";
        //m_period[0] = 6;
        init(0, 1, 1);
        //-->
        </SCRIPT>
    </asp:Panel>

    <asp:Panel id="pnlJsInitM2" runat="server" Visible="False">
                                <SCRIPT language="javascript">
        <!--
        m_name[1] = "《证券市场》周刊(综合刊)";
        m_name[2] = "《证券市场》周刊(市场刊)";
        init(1, 2, 1);
        init(1, 3, 1);
        //-->
        </SCRIPT>
    </asp:Panel>

    <asp:Panel id="pnlJsInitM2n" runat="server" Visible="False">
                                <SCRIPT language="javascript">
        <!--
        m_name[1] = "《证券市场》周刊(综合刊)";
        m_name[2] = "《证券市场》周刊(市场刊)";
        init(0, 2, 1);
        init(0, 3, 1);
        //-->
                            </SCRIPT>
    </asp:Panel>
    -----------------------------------------------

    Codebehind:

    string strM;
                try
                {
                    strM = Request.QueryString["m"].Trim();
                }
                catch
                {
                    strM = "3";
                }


        switch(strM)
        {
        case "1":
                        pnlJsInitM1.Visible = true;
                        pnlJsInitM1n.Visible = false;
                        pnlJsInitM2.Visible = false;
                        //pnlJsInitM2n.Visible = true;
                        pnlJsInitM2n.Visible = false;
        break;

        case "2":
                        pnlJsInitM1.Visible = false;
                        pnlJsInitM1n.Visible = true;
                        pnlJsInitM2.Visible = true;
                        pnlJsInitM2.Visible = false;
                        //pnlJsInitM2n.Visible = false;
        break;

        default :
                        pnlJsInitM1.Visible = false;
                        pnlJsInitM1n.Visible = true;
                        pnlJsInitM2.Visible = false;
                        //pnlJsInitM2n.Visible = true;
                        pnlJsInitM2n.Visible = false;
        break;

        }