Javascript 展开所有gridvie

Javascript 展开所有gridvie,javascript,gridview,expand,Javascript,Gridview,Expand,我在la page中有一个.ascx控件。在该控件中,我有一个具有可扩展内容的GridView。到现在为止,一直都还不错。当我尝试创建“全部展开/全部折叠”按钮时,问题就开始了。出于某种原因,我必须将Javascript函数放在.aspx页面中,否则无法找到它们 如何从控件检索gridview数据?我想为每一行调用expandOne函数,但我无法访问这些行。expandOne在一排上运行良好 var gvObject = document.getElementById('GridView1');

我在la page中有一个.ascx控件。在该控件中,我有一个具有可扩展内容的GridView。到现在为止,一直都还不错。当我尝试创建“全部展开/全部折叠”按钮时,问题就开始了。出于某种原因,我必须将Javascript函数放在.aspx页面中,否则无法找到它们

如何从控件检索gridview数据?我想为每一行调用expandOne函数,但我无法访问这些行。expandOne在一排上运行良好

var gvObject = document.getElementById('GridView1'); 
是空的

var gvObject = $('GridView1');
给出非网格的内容(gvObject.rows为null)和gvObject.length==0

var grid = document.getElementById('<%=GridView1.ClientID %>');
var grid=document.getElementById(“”);
将崩溃(“GridView1”在当前上下文中不存在)

这是HTML

<asp:GridView ID="GridView1" runat="server" AllowPaging="false" AutoGenerateColumns="False" ShowHeader="false">
<Columns>
  <asp:TemplateField>
      <ItemTemplate>
          <a href="javascript:collapseExpand('Job-<%# Eval("Index") %>');" >
          <img id="imageJob-<%# Eval("Index") %>"  alt="Click to show/hide orders"  border="0" src="../images/plus.png" /></a>
      </ItemTemplate>
  </asp:TemplateField>
  <asp:BoundField DataField="TitleCnt" />

  <asp:TemplateField>
      <ItemTemplate>
          <tr><td colspan="100%">
              <div id="Job-<%# Eval("Index") %>" style="display:none; left:25px;" class="answer">
                <asp:Label Text="Some content" runat="server"></asp:Label>
              </div>
          </td></tr>
      </ItemTemplate>
  </asp:TemplateField>
</Columns>
</asp:GridView>

还有javascript

function expandOne(obj) {
    var gvObject = document.getElementById(obj);
    var imageID = document.getElementById('image' + obj);
    gvObject.style.display = "inline";
    imageID.src = "../images/moins.png";
}

function ExpandAll() {
    var gvMaster = $('GridView1');
    for (i = 0; i < gvMaster.rows.length; i++) {
        expandOne('Job' + i);
    }
}
函数expandOne(obj){
var gvObject=document.getElementById(obj);
var imageID=document.getElementById('image'+obj);
gvObject.style.display=“inline”;
imageID.src=“../images/moins.png”;
}
函数ExpandAll(){
var gvMaster=$('GridView1');
对于(i=0;i

非常感谢。

如果您使用的是.Net 4,您可以设置GridView的
clientdmode=“Static”
。这将在客户端上生成一个id属性为“GridView1”的表。然后,这将为您提供表格:

var gvObject=document.getElementById('GridView1')

您的jQuery选择也会起作用,但您必须包含#字符:

var gvObject=$('#GridView1')

有关ClientIDMode的信息,请参阅