2013-02-24 70 views
2

我有一个网格视图,其中包含一个下拉列表和一个面板,我希望通过下拉列表的选定值使其不可见和可见。如何从Javascript中访问gridview内的面板?

时不与GridView控件使用其作品的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和下拉列表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); 

,但它不工作要么。

请帮

感谢

+0

你在你的函数试图警告ANS看到,只要是渲染的id是一样的吗? – 2013-02-24 11:12:55

+0

你还使用jquery吗? – 2013-02-24 11:14:00

+0

不,我只是检查我不知道我可以将它呈现为MainContent_GridView1_DropDownList1_7我应该尝试添加GridView客户端ID – user410911 2013-02-24 11:16:45

回答

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

相关问题