2

ドロップダウンリストと、ドロップダウンリストの選択した値によって非表示および表示にしたいパネルを含むグリッドビューがあります。

グリッドビューで使用しない場合に機能する JavaScript コードは次のとおりです。

   function showPannel(panelId,dropdownId ) {
        var panel = document.getElementById(panelId);
        var dropDown = document.getElementById(dropdownId);
        if (dropDown.options[dropDown.selectedIndex].value = 'Diesel Deals') {
             panel.className = "visibleDiv";

       }
        else{
            panel.className = "hiddenDiv";
            }

    }

ここから panelId と dropdownlist id を渡します:

    if (e.Row.RowType == DataControlRowType.DataRow)
        {
            Panel p = (Panel)e.Row.FindControl("Panel1");
            DropDownList t1 = (DropDownList)e.Row.FindControl("DropDownList1");
            t1.Attributes.Add("onchange",
                 string.Format("javascript:showPannel('{0}', '{1}')",p.ClientID, t1.ClientID ));
        }

しかし、それは機能していません。関数が呼び出されていますが、dropDown.options[dropDown.selectedIndex].value が警告されたときに undefined を返します。

やってみました

                    Gridview1 = document.getElementById('<%=GridView1.ClientID%>');
             var cell = Gridview1.rows[0].cells[2];
             var dropdownlist = cell.childNodes[0];
             var dropdownSelectedValue = dropdownlist.options[dropdownlist.selectedIndex].value;
             alert(dropdownSelectedValue); 

しかし、どちらも機能していません。

助けてください

ありがとう

4

1 に答える 1

0
            Panel p = (Panel)e.Row.FindControl("Panel1");
            DropDownList t1 = (DropDownList)e.Row.FindControl("DropDownList1");
            string p_id = GridView1.ClientID + "_" + p.ClientID;
            string ddL_id = GridView1.ClientID + "_" + t1.ClientID;
            t1.Attributes.Add("onchange",
                 string.Format("javascript:showPannel('{0}', '{1}')", p_id, ddL_id ));

レンダリングIDについてのヒントをありがとう

于 2013-02-24T11:24:55.357 に答える