datagrid每行有一个Button 点击Button获得所在哪个行  本行第一列还有个panel控件  初始Visible=false
点击按钮后  panel.visible=true;
请问怎样实现?   
谢谢

解决方案 »

  1.   

    在ItemCommand中可以获取到你单击了哪行的按钮,不过你得设定按钮的commandname,然后在此事件中通过e.CommandName=="???"来判断是否单击了按钮,这个e参数应该就可以获取哪一行了,实在不行的,你也可以通过绑定button的commandArgument值来获取,让这个属性保存索引号
      

  2.   

    Me.GridView1.Rows(e.CommandArgument).Cells(3).Text
    使用上面的代码,可以取得所点击按钮行的,第4列的数据。
      

  3.   

    css样式我就不写了  楼主试试吧var arrPanel=new Array();
    var arrButton = new Array();
    $(function(){
        $("#GridView1").find(".abc").each(function(){
            arrPanel.push($(this));
        })
        $("#GridView1").find("input[name='dis']").each(function(){
            arrButton.push($(this));
        })
        $.each(arrButton, function(x){
            arrButton[x].click(function(){
                if(arrPanel[x].is(":visible")){
                    arrPanel[x].css("display", "none");
                }
                else{
                    arrPanel[x].css("display", "block");
                }
            })
        })
    })
    <asp:GridView ID="GridView1" AutoGenerateColumns="False" runat="server" DataKeyNames="Id" DataSourceID="SqlDataSource1">
                <Columns>
                    <asp:TemplateField>
                        <ItemTemplate>
                            <asp:Panel ID="i" class="abc" runat="Server" style="display:none;">
                                <h1>lsdjfsl</h1>
                            </asp:Panel>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:BoundField DataField="Id" HeaderText="Id" InsertVisible="False" ReadOnly="True"
                        SortExpression="Id" />
                    <asp:BoundField DataField="a_title" HeaderText="a_title" SortExpression="a_title" />
                    <asp:BoundField DataField="a_time" HeaderText="a_time" SortExpression="a_time" />
                    <asp:CheckBoxField DataField="a_isIndex" HeaderText="a_isIndex" SortExpression="a_isIndex" />
                    <asp:TemplateField>
                        <ItemTemplate>
                            <input type="button" name="dis" value="DISPLAY" />
                        </ItemTemplate>
                    </asp:TemplateField>
                </Columns>
                
            </asp:GridView>
      

  4.   

    给Button属性中加上CommandArgument='<%# Eval("主键字段") %>'
    然后在后台按钮点击事件中判断获取到CommandArgument属性的值,显示不同的Panel