麻烦给出javascript获取和c#获取的方法,谢谢了.<asp:TemplateField HeaderText="xx" SortExpression="xx">
                    <ItemStyle HorizontalAlign="Left" Width="20%" />
                    <ItemTemplate>
                    <div id='hid' style=" display:none;position:absolute" runat=server>
                        <asp:LinkButton ID="myhid" runat="server" style="cursor:hand" CommandName="hide" Text="xx"></asp:LinkButton>
                    </div>
                    </ItemTemplate>
                </asp:TemplateField>

解决方案 »

  1.   

    在行绑定事件里加
    (Div)e.Row.Cells[索引].FindControl("hid")
      

  2.   

    (Div)e.Row.Cells[索引].FindControl("hid")
    这样是可行的。
      

  3.   

    c#:
    (Div)e.Row.Cells[索引].FindControl("hid")
    Js:
    var temp=document.getElementById("<%=hid.ClientID %>")
      

  4.   

    不用。var temp=document.getElementById(" <%=hid.ClientID %>") 呵,这样子的话到底是取那个行的hid呢?
      

  5.   

    3楼的写法可能有问题C#没有DIV这个类的,应该是
    ((HtmlGenericContainer)吧, 我是手写的,可能不准另外LZ的意思应该是获取一个控件内控件的ID,应该只有一个办法吧, 在C#里用FINDCONTROL的方法获取, 之后用ClientId获取照理说是无法用JAVASCRIPT获取,除非写死.
    控件内控件的ID规则一般是父控件ID_子控件ID_再次子控件ID
    其实你页面打开后,查看HTML源文件就很清楚了
      

  6.   

    我想要的通过点击linkbutton来改变这个div的display,<asp:GridView ID="GridView1" runat="server" OnRowCommand="GridView1_RowCommand" OnRowCreated="GridView1_RowCreated">
    <asp:TemplateField HeaderText="xx" SortExpression="xx">
                        <ItemStyle HorizontalAlign="Left" Width="20%" />
                        <ItemTemplate>
                        <div id='hid' style=" display:none;position:absolute" runat=server>
                            <asp:Label ID="lb" runat="server" Text='<%# Eval("xx")%>'></asp:Label>
                        </div>
    <asp:LinkButton ID="myhid" runat="server" style="cursor:hand" CommandName="hide" Text="xx"></asp:LinkButton>
                        </ItemTemplate>
                    </asp:TemplateField>
    </GridView>protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "hide")
            {
                (GridView1.Rows[Convert.ToInt32(e.CommandArgument)].Cells[6].FindControl("showid")).style["display"]= "block";
                //这里就是我想要的        }
        }
      

  7.   

    在界面上放一个html Text和Button.
     <input id="Text1" type="text" />
    <input id="Button1" type="button" value="button" onclick="return Button1_onclick()" />
    根据在Text里输入的值,更改对应行div的display属性。function Button1_onclick() {
        if(document.getElementById('Text1').value != "")
        {
            var grid = document.getElementById('<%= GridView1.ClientID %>');
            grid.getElementsByTagName("div")[document.getElementById('Text1').value].style.display = "";
        }
    }
      

  8.   


    protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
    {
            if (e.CommandName == "hide")
            {
                HtmlGenericControl div = (HtmlGenericControl)GridView1.Rows[Convert.ToInt32(e.CommandArgument)].FindControl("hid");
                div.Style["display"] = "block";
            }
    }
      

  9.   


    谢谢,这样好象能获得了,但是找到了多个具有相同id'lb'的控件,该如何解决?
      

  10.   

    不可能找到多个相同id的控件。
    因为GridView1.Rows[索引].FindControl("要查找的Control ID");这已经限定了在某一行内找。除非你在这行里放了两个或多个同样ID的控件,不过你能放吗?放得下来吗:-)
      

  11.   

    忘了跟你说了.
    <asp:LinkButton ID="myhid" runat="server" style="cursor:hand;text-decoration:none;" CommandName="hide" Text="……" CommandArgument='<%# Container.DisplayIndex %>'> ...加上这个。传行索引。
      

  12.   

    老兄,如何用javascript实现在客户端获取,并通过在客户端的点击来更改div的display呢?
      

  13.   


    function Button1_onclick() { 
        if(document.getElementById('Text1').value != "") 
        { 
            var grid = document.getElementById(' <%= GridView1.ClientID %>'); 
            grid.getElementsByTagName("div")[document.getElementById('Text1').value].style.display = ""; 
        } 
    }
    这样不能具体获取到哪一行哪一列吧?