GridView最后一列是模板列,放置了一个linkbutton,主要功能是点击后查看该列内容的详情。所以要给linkbutton加上一个页面链接,后面带上该行的datakey做参数。不知道该如何实现了。前面还有两个linkbutton分别做更新和删除的,可以用update和delete这样的command命令,获得this.GridView1.DataKeys[e.RowIndex].Value,然后就能定位到相应的数据了。不知道除了这两个还有什么办法能获得datakey??

解决方案 »

  1.   

    <asp:GridView ID="grid" runat="server" OnRowCommand="grid_RowCommand">
                <Columns>
                    
                    <asp:TemplateField>
                        <ItemTemplate>
                            <asp:LinkButton ID="lbtn_1" CommandArgument='<%#Eval("key") %>' runat="server" CommandName="comand"></asp:LinkButton>
                        </ItemTemplate>
                    </asp:TemplateField>
                </Columns>
            </asp:GridView>
        protected void grid_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "comand")
            {
                Response.Write(e.CommandArgument.ToString());
            }
        }
      

  2.   

    链接上用<%#  Eval("字段名")%>作为参数
      

  3.   

    这样写才是最好的吧 ?在OnRowDataBound中写: 假设LinkButton1GridView_RowDataBound(object sender,GridView.... e)

    LinkButton LBN=(LinkButton)e.Row.FindControl("LinkButton1");
    if(LBN != null)
    {
    LBN.Attributes.Add("onclick","window.open('NextPage.aspx?id="+e.Row.Cells[0].Text.toString()+"')");
    }
    }
    其中NextPage.aspx是详细信息页面,Cells[0]中的0是主键列的索引,看第几列就把0 换成几
      

  4.   

    也许id人家不想放在前面呢 
    还是这个
    <%#DataBinder.Eval(Container.DataItem,"字段名")%>
      

  5.   

    mqc507() 的方法有局限性 正像linekery() 所说的xtra6714(赚钱,生存) 的方法最方便!呵呵 谢谢了