这里有2个GridView,分别绑定不同的数据源,
2个gridview各有一个<PagerTemplate>
<PagerTemplate>
    <asp:LinkButton ID="btnPrev" runat="server" CausesValidation="False" CommandName="Page" Text="上一页" CommandArgument="prev" onclick="Grd1btn_Click" ToolTip="到上一页" Enabled="<%# ((GridView)Container.Parent.Parent).PageIndex!=0 %>"></asp:LinkButton>
    <asp:LinkButton ID="btnNext" runat="server" CausesValidation="False" CommandName="Page" Text="下一页" CommandArgument="next" OnClick="Grd1btn_Click" ToolTip="到下一页" Enabled="<%# ((GridView)Container.Parent.Parent).PageIndex!=((GridView)Container.Parent.Parent).PageCount-1 %>"></asp:LinkButton>
</PagerTemplate>后台代码:
protected void Grd1btn_Click(object sender, EventArgs e)
{
    switch (((LinkButton)sender).CommandArgument.ToString())
    {
        case "prev":
            if (GridView1.PageIndex>=1)
            GridView1.PageIndex = GridView1.PageIndex - 1;
            break;
        case "next":
            GridView1.PageIndex = GridView1.PageIndex + 1;
            break;
    }
    initdata();
}
现在我要想2个gridview共享此段代码,分别点击LinkButton的时候对各自的GridView起作用,应该怎么写?
请指点,最好有代码

解决方案 »

  1.   


    switch (((LinkButton)sender).CommandArgument.ToString())
      {
      case "prev":
      if (GridView1.PageIndex>=1)
      GridView1.PageIndex = GridView1.PageIndex - 1;
      break;
      case "next":
      GridView1.PageIndex = GridView1.PageIndex + 1;
      break;
      }
      initdata();写个函数、放这段代码、然后在每个GridView的相应的OnClick事件里调用这段函数..
      

  2.   


    GridView1 换成GridView x = ((LinkButton)sender).Parent.Parent...一直找到 GridView即可
    然后x.PageIndex = x.PageIndex - 1;思路就是这样的
      

  3.   

    ??不懂楼上的意思,这个函数怎么写?怎么能知道这个linkbutton是哪个gridview里的?
      

  4.   

    本帖最后由 net_lover 于 2010-12-23 16:16:49 编辑
      

  5.   


    linkbutton是gridview的成员,可以通过linkbutton的parent属性获取它的上层控件。4楼说的很清楚了。
      

  6.   

    GridView x = ((LinkButton)sender).Parent.Parent;
    但提示Cannot implicitly convert type 'System.Web.UI.Control' to 'System.Web.UI.WebControls.GridView'. An explicit conversion exists (are you missing a cast?)
    该怎么写才行?
      

  7.   

    你要打印出
    ((LinkButton)sender).Parent看是什么,假如是DataPager,就写
    (((LinkButton)sender).Parent as DataPager).Parent
    直到找到GridView上面只是例子,不一定是 DataPager再说一遍,上面只是例子,可能不止了2次Parent
      

  8.   

    本帖最后由 net_lover 于 2010-12-23 17:28:04 编辑
      

  9.   

    C++ GUI Programming with Qt 4 (second edition) 源代码
      

  10.   

    谢谢net_lover大大,我用GridView x = ((LinkButton)sender).Parent.Parent.Parent.Parent as GridView取到了